МультиТредовые архитектуры

Содержание

Слайд 2

Пути увеличения производительности

Наращивание тактовой частоты
Реализация параллелизма на уровне команд (ILP)
Реализация параллелизма на

Пути увеличения производительности Наращивание тактовой частоты Реализация параллелизма на уровне команд (ILP)
уровне нитей (TLP)

Слайд 3

Многопоточность

Многопоточность – это свойство платформы или программы, позволяющее процессу состоять из нескольких

Многопоточность Многопоточность – это свойство платформы или программы, позволяющее процессу состоять из
потоков команд, исполняющихся параллельно, без предписанного порядка во времени.
Цель – более эффективное использование ресурсов компьютера

Слайд 4

Многопоточное программирование

Все потоки находятся в едином адресном пространстве процесса, т.е. имеют общую

Многопоточное программирование Все потоки находятся в едином адресном пространстве процесса, т.е. имеют
память
Создание потока и переключение между ними менее трудоемко, чем аналогичные операции над процессами
Исключение некорректной работы с памятью обеспечивается использованием средств синхронизации

Слайд 5

Средства многопоточной синхронизации

Mutex (Mutual Exclusion Lock) – объект, который может быть захвачен

Средства многопоточной синхронизации Mutex (Mutual Exclusion Lock) – объект, который может быть
одновременно только одним потоком. После выполнения необходимых действий мьютекс освобождается.
Семафор – объект, который может быть захвачен одновременно ограниченным числом потоков.
Событие – объект, сообщающий ожидающему потоку (или потокам) о возникновении какого-либо события

Слайд 6

Пример использования нитей

void mul(int start, int end)
{
for (int i=start; i

Пример использования нитей void mul(int start, int end) { for (int i=start;
c[i] = a[i] + b[i];
}

mul(0, N);

CreateThread(mul, 0, N/2);
CreateThread(mul, N/2, N);

Слайд 7

Аппаратная поддержка многопоточности

Coarse-grained MT (крупнозернистая многопоточность)
Fine-grained MT (мелкозернистая многопоточность)
SMT (Одновременная многопоточность)

Аппаратная поддержка многопоточности Coarse-grained MT (крупнозернистая многопоточность) Fine-grained MT (мелкозернистая многопоточность) SMT (Одновременная многопоточность)

Слайд 8

Крупнозернистая многопоточность (Coarse-grained MT)

2 и более аппаратных контекстов
Регистры общего назначения
Счетчик команд
Буфер выборки инструкций
Одновременно

Крупнозернистая многопоточность (Coarse-grained MT) 2 и более аппаратных контекстов Регистры общего назначения
не более 1 нити
Аппаратное переключение контекстов при прерывании

Слайд 9

Мелкозернистая многопоточность (Fine-grained MT)

2 и более аппаратных контекстов
Регистры общего назначения
Счетчик команд
Одновременно не

Мелкозернистая многопоточность (Fine-grained MT) 2 и более аппаратных контекстов Регистры общего назначения
более 1 нити
Аппаратное переключение на каждом такте

Слайд 10

Одновременная многопоточность (Simultaneous MT)

2 и более аппаратных контекстов
Регистры общего назначения
Буфер выборки инструкций
Буфер

Одновременная многопоточность (Simultaneous MT) 2 и более аппаратных контекстов Регистры общего назначения
переупорядочивания
Стек возврата
Привязка команд и нитей
До нескольких нитей одновременно
Контексты активны, переключения не происходит

Слайд 11

Software

Coarse-grained

Fine-grained

Simultaneous

Software Coarse-grained Fine-grained Simultaneous

Слайд 12

Многоядерность vs многопроцессорность (CMP – Chip Multiprocessors)

Меньше стоимость при той же производительности
Выше скорость

Многоядерность vs многопроцессорность (CMP – Chip Multiprocessors) Меньше стоимость при той же
обмена между ядрами
Меньше места, меньше выделяемого тепла, меньше потребляемая мощность

Слайд 13

Структура CMP-процессора

Структура CMP-процессора

Слайд 14

Многопоточность на основе CMP

Простая логика, один поток на ядро
Масштабируемость за счет локальности
Условная

Многопоточность на основе CMP Простая логика, один поток на ядро Масштабируемость за
многопоточность (Speculative MultiThreading) для ускорения последовательного кода

Слайд 15

Распределение ресурсов

Распределение ресурсов

Слайд 16

CMP+SMT

CMP + SMT

CMP

CMP+SMT CMP + SMT CMP

Слайд 17

Многопоточные архитектуры

Многопоточные архитектуры

Слайд 18

Примеры многопоточных архитектур

CMP
POWER 4
Barcelona
Clovertown
Opteron
SMT
Alpha 21464
Pentium 4
Itanium 2

CMP + SMT
POWER 5
UltraSPARC T2
Keifer

Примеры многопоточных архитектур CMP POWER 4 Barcelona Clovertown Opteron SMT Alpha 21464

Слайд 19

POWER 4 (2 ядра)

POWER 4 (2 ядра)

Слайд 20

Dual core Opteron (2 ядра)

Dual core Opteron (2 ядра)

Слайд 21

Barcelona (4 ядра)

Barcelona (4 ядра)

Слайд 22

Clovertown (4 ядра)

Clovertown (4 ядра)

Слайд 23

Alpha 21464 (4 потока)

Alpha 21464 (4 потока)

Слайд 24

Pentium 4 (2 потока)

Pentium 4 (2 потока)

Слайд 25

POWER 5 2 ядра 2 нити

POWER 5 2 ядра 2 нити

Слайд 26

UltraSPARC T2 (8 ядер х 8 потоков)

UltraSPARC T2 (8 ядер х 8 потоков)
Имя файла: МультиТредовые-архитектуры.pptx
Количество просмотров: 102
Количество скачиваний: 0