'

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

Понравилась презентация – покажи это...





Слайд 0

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


Слайд 1

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


Слайд 2

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


Слайд 3

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


Слайд 4

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


Слайд 5

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


Слайд 6

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


Слайд 7

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


Слайд 8

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


Слайд 9

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


Слайд 10

Software Coarse-grained Fine-grained Simultaneous


Слайд 11

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


Слайд 12

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


Слайд 13

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


Слайд 14

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


Слайд 15

CMP+SMT CMP + SMT CMP


Слайд 16

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


Слайд 17

Примеры многопоточных архитектур CMP POWER 4 Barcelona Clovertown Opteron SMT Alpha 21464 Pentium 4 Itanium 2 CMP + SMT POWER 5 UltraSPARC T2 Keifer


Слайд 18

POWER 4 (2 ядра)


Слайд 19

Dual core Opteron (2 ядра)


Слайд 20

Barcelona (4 ядра)


Слайд 21

Clovertown (4 ядра)


Слайд 22

Alpha 21464 (4 потока)


Слайд 23

Pentium 4 (2 потока)


Слайд 24

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


Слайд 25

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


Слайд 26

Keifer (8 узлов х 4 ядер х 4 потока)


×

HTML:





Ссылка: