1 Внутрипроцессорная многопоточность (1) (a) – (c) Три потока. Пустые квадраты означают простой в ожидании данных из памяти (d) Мелкомодульная многопоточность (e) Крупномодульная многопоточность
2 Внутрипроцессорная многопоточность (2) Многопоточность в сдвоенном процессоре (a) Мелкомодульная многопоточность (b) Крупномодульная многопоточность (c) Синхронная многопоточность
3 Варианты повышения производительности Повышение тактовой частоты Размещение на одной микросхеме двух процессоров Введение новых функциональных блоков Удлинение конвейера Использование многопоточности
4 Стратегии управления совместным потреблением ресурсов Дублирование ресурсов Жёсткое разделение ресурсов Полное разделение ресурсов Пороговое разделение ресурсов
5 Многопоточность в Pentium 4 Разделение ресурсов между программными потоками в микроархитектуре NetBurst Pentium 4. Процессоры архитектуры NetBurst состоят из четырёх основных структурных блоков: на ядре Northwood, Gallatin, Prescott (с 2001 по 2005)
6 NetBurst
7 Гомогенные однокристальные микропроцессоры Однокристальные мультипроцессоры. (a) Два конвейера (b) Два ядра
8
9 Гетерогенные однокристальные мультипроцессоры
10
11 Архитектура CoreConnect
12
13
14 Сетевые процессоры
15
16
17 Мультипроцессоры (a) Мультипроцессор с 16 ЦПУ, разделяющих общую память (b) Изображение, разбивается на 16 частей, каждое обрабатывается своим ЦПУ
18 Мультикомпьютеры (1)
19 Мультикомпьютеры (2)
Мелкозернистый параллелизм обеспечивает сам CPU, но компилятор может и должен ему помочь для обеспечения большего IPC. Среднезернистый параллелизм – прерогатива программиста, которому необходимо разрабатывать многопоточные алгоритмы. Здесь роль компилятора заключается в выборе оптимальной последовательности инструкций (с большим IPC) посредством различных методик (например, символическое разворачивание циклов). Крупнозернистый параллелизм обеспечивает ОС.
21 Архитектуры параллельных компьютеров (a) На чипе (b) Сопроцессор (c)Мультипроцессор (d) Мультикомпьютер (e) Грид
22 Систематика Флинна (Flynn) –Классификация по способам взаимодействия последовательностей (потоков) выполняемых команд и обрабатываемых данных: SISD (Single Instruction, Single Data) SIMD (Single Instruction, Multiple Data) MISD (Multiple Instruction, Single Data) MIMD (Multiple Instruction, Multiple Data) Классификация вычислительных систем Практически все виды параллельных систем, несмотря на их существенную разнородность, относятся к одной группе MIMD
23 Детализация систематики Флинна… –Дальнейшее разделение типов многопроцессорных систем основывается на используемых способах организации оперативной памяти, –Позволяет различать два важных типа многопроцессорных систем: multiprocessors (мультипроцессоры или системы с общей разделяемой памятью), multicomputers (мультикомпьютеры или системы с распределенной памятью). Классификация вычислительных систем
24 Классификация вычислительных систем
25 Мультипроцессоры с использованием единой общей памяти (shared memory)… –Обеспечивается однородный доступ к памяти (uniform memory access or UMA), –Являются основой для построения: векторных параллельных процессоров (parallel vector processor or PVP). Примеры: Cray T90, симметричных мультипроцессоров (symmetric multiprocessor or SMP). Примеры: IBM eServer, Sun StarFire, HP Superdome, SGI Origin. Классификация вычислительных систем
26 Мультипроцессоры с использованием единой общей памяти… Классификация вычислительных систем
27 Мультипроцессоры с использованием единой общей памяти… Проблемы: Доступ с разных процессоров к общим данным и обеспечение, в этой связи, однозначности (когерентности) содержимого разных кэшей (cache coherence problem), Необходимость синхронизации взаимодействия одновременно выполняемых потоков команд Классификация вычислительных систем
28 Мультипроцессоры с использованием единой общей памяти… Проблема: Обеспечение однозначности (когерентности) содержимого разных кэшей (cache coherence problem) Классификация вычислительных систем При изменении данных необходимо проверять наличие "старых" значений в кэш- памяти всех процессоров (обеспечивается на аппаратном уровне, но становится сложным при большом количестве процессоров)
29 Мультипроцессоры с использованием единой общей памяти… Проблема: Необходимость синхронизации взаимодействия одновременно выполняемых потоков команд… Классификация вычислительных систем
30 Пример: Пусть процессоры выполняют последовательность команд над общей переменной N (в скобках указывается значение этой переменной) Вариант исполнения 1 Вариант исполнения 2 Классификация вычислительных систем Временная последовательность команд может быть различной – необходима синхронизация при использовании общих переменных ! N = N + 1 Печать N
31 Мультипроцессоры с использованием единой общей памяти… Проблема: Необходимость синхронизации взаимодействия одновременно выполняемых потоков команд… Рассмотренный пример может рассматриваться как проявление общей проблемы использования разделяемых ресурсов (общих данных, файлов, устройств и т.п.) Классификация вычислительных систем
32 Для организации разделения ресурсов между несколькими потоками команд необходимо иметь возможность: - определения доступности запрашиваемых ресурсов (ресурс свободен и может быть выделен для использования, ресурс уже занят одним из потоков и не может использоваться дополнительно каким-либо другим потоком); - выделения свободного ресурса одному из процессов, запросивших ресурс для использования; - приостановки (блокировки) потоков, выдавших запросы на ресурсы, занятые другими потоками. Классификация вычислительных систем
33 Мультипроцессоры с использованием единой общей памяти Проблема: Необходимость синхронизации взаимодействия одновременно выполняемых потоков команд Доступ к общей переменной в рассмотренном примере в самом общем виде должен быть организован следующим образом: Классификация вычислительных систем N = N + 1 Печать N Полное рассмотрение проблемы синхронизации будет выполнено позднее при изучении вопросов параллельного программирования для вычислительных систем с общей памятью
34 Мультипроцессоры с использованием физически распределенной памяти (distributed shared memory or DSM): –Неоднородный доступ к памяти (non-uniform memory access or NUMA), –Среди систем такого типа выделяют: cache-only memory architecture or COMA (системы KSR-1 и DDM), cache-coherent NUMA or CC-NUMA (системы SGI Origin 2000, Sun HPC 10000, IBM/Sequent NUMA-Q 2000), non-cache coherent NUMA or NCC-NUMA (система Cray T3E). Классификация вычислительных систем
35 Мультипроцессоры с использованием физически распределенной памяти… Классификация вычислительных систем
36 Мультипроцессоры с использованием физически распределенной памяти: –Упрощаются проблемы создания мультипроцессоров (известны примеры систем с несколькими тысячами процессоров) –Возникают проблемы эффективного использования распределенной памяти (время доступа к локальной и удаленной памяти может различаться на несколько порядков). Классификация вычислительных систем
37 Мультикомпьютеры … –Не обеспечивают общий доступ ко всей имеющейся в системах памяти (no-remote memory access or NORMA), –Каждый процессор системы может использовать только свою локальную память Классификация вычислительных систем
38 Для доступа к данным, располагаемых на других процессорах, необходимо явно выполнить операции передачи сообщений (message passing operations), Основные операции передачи данных: Отправить сообщение (send), Получить сообщение (receive) Пример: Мультикомпьютеры Процессор 1 Процессор 2
39 Данный подход используется при построении двух важных типов многопроцессорных вычислительных систем: –массивно-параллельных систем (massively parallel processor or MPP), например: IBM RS/6000 SP2, Intel PARAGON, ASCI Red, транспьютерные системы Parsytec, –кластеров (clusters), например: AC3 Velocity и NCSA NT Supercluster. Мультикомпьютеры
40 Преимущества: –Могут быть образованы на базе уже существующих у потребителей отдельных компьютеров, либо же сконструированы из типовых компьютерных элементов; –Повышение вычислительной мощности отдельных процессоров позволяет строить кластеры из сравнительно небольшого количества отдельных компьютеров (lowly parallel processing), –Для параллельного выполнения в алгоритмах достаточно выделять только крупные независимые части расчетов (coarse granularity). Кластеры
41 Недостатки: –Организация взаимодействия вычислительных узлов кластера при помощи передачи сообщений обычно приводит к значительным временным задержкам –Дополнительные ограничения на тип разрабатываемых параллельных алгоритмов и программ (низкая интенсивность потоков передачи данных) Кластеры
42
43
44
45
46
47 (Accelerated Strategic Computing Initiative) –1996, система ASCI Red, построенная Intel, производительность 1 TFlops, –1999, ASCI Blue Pacific от IBM и ASCI Blue Mountain от SGI, производительность 3 TFlops, –2000, ASCI White с пиковой производительностью свыше 12 TFlops (реально показанная производительность на тесте LINPACK составила на тот момент 4938 GFlops)ASCI White Суперкомпьютеры. Программа ASCI
48 Система с 512-ю симметричными мультипроцессорными (SMP) узлами, каждый узел имеет 16 процессоров Процессоры IBM RS/6000 POWER3 с 64-х разрядной архитектурой и конвейерной организацией с 2 устройствами по обработке команд с плавающей запятой и 3 устройствами по обработке целочисленных команд, они способны выполнять до 8 команд за тактовый цикл и до 4 операций с плавающей запятой за такт, тактовая частота 375 MHz Оперативная память системы – 4 TB, Емкость дискового пространства 180 TB Суперкомпьютеры. ASCI White
Часть машинного зала компьютера ASCI White, на переднем плане – консоль (рабочее место системного оператора суперкомпьютера).
50 –Операционная система представляет собой версию UNIX – IBM AIX, –Программное обеспечение ASCI White поддерживает смешанную модель программирования – передача сообщений между узлами и многопотоковость внутри SMP-узла, –Поддерживаются библиотеки MPI, OpenMP, потоки POSIX и транслятор директив IBM, имеется параллельный отладчик IBM. Суперкомпьютеры. ASCI White
Стойки с параллельными процессорами суперкомпьютера ASCI White
52 Первый вариант системы представлен в 2004 г. и сразу занял 1 позицию в списке Top500 Расширенный вариант суперкомпьютера (ноябрь 2007 г.) по прежнему на 1 месте в перечне наиболее быстродействующих вычислительных систем: двухядерных 32-битных процессоров PowerPC GHz, пиковая производительность около 600 TFlops, производительность на тесте LINPACK – 478 TFlops Суперкомпьютеры. Система BlueGene
53 ASCI White & Blue Gene
54 –RoadRunner является наиболее быстродействующей вычислительной системой (2008) и первым в мире суперкомпьютером, производительность которого превысила рубеж 1 PFlops (1000 TFlops): Система RoadRunner процессоров IBM PowerXCell 8i и 6480 двухядерных процессоров AMD Opteron, пиковая производительность около 1700 TFlops, производительность на тесте LINPACK – 1026 TFlops
55 Общее количество узлов 276 (552 процессора). Каждый узел представляет собой: 2 процессора IBM PowerPC 970 с тактовой частотой 2.2 GHz, кэш L1 96 Kb и кэш L2 512 Kb, 4 Gb оперативной памяти на узел, 40 Gb жесткий диск IDE, –Операционная система SuSe Linux Enterprise Server версии 8 для платформ x86 и PowerPC, –Пиковая производительность GFlops и максимально показанная на тесте LINPACK 3052 GFlops. Суперкомпьютеры. МВС-15000
56 Суперкомпьютеры. МВС-15000
57 –Общее количество двухпроцессорных узлов 625 (1250 четырехядерных процессоров Intel Xeon E ГГц), Суперкомпьютеры. СКИФ МГУ –Общий объем оперативной памяти – 5,5 Тбайт, –Объем дисковой памяти узлов – 15 Тбайт, –Операционная система Linux, –Пиковая производительность 60 TFlops, быстродействие на тесте LINPACK 47 TFlops.
Cуперкомьютер Ломоносов
В нем используется 3 вида вычислительных узлов и процессоры с различной архитектурой. Перед установкой в МГУ им. М.В. Ломоносова система прошла тщательное тестирование на производстве компании «Т- Платформы». В качестве основных узлов, обеспечивающих свыше 90% производительности системы, используется инновационная blade- платформа, получившая название T-Blade2. По вычислительной плотности на квадратный метр занимаемой площади – 30Тфлопс/м2 – эта система превосходит все мировые аналоги. T-Blade2 на базе процессоров Intel® Xeon X5570 обеспечивает производительность 18TFlops в стандартной стойке высотой 42U. В суперкомпьютере также задействованы blade-системы T- Blade 1.1 с увеличенным объемом оперативной памяти и локальной дисковой памятью для выполнения специфических задач, особенно требовательных к этим параметрам системы. Третий тип узлов – платформы на базе многоядерного процессора PowerXCell 8i, использующиеся в качестве мощных ускорителей для ряда задач. Все три типа вычислительных узлов были разработаны компанией «Т-Платформы». Платформа T-Blade2 была сконструирована инженерами «Т-Платформы» «с нуля» - все платы и механические компоненты являются собственными разработками компании. T-Blade2 выходит за рамки традиционных возможностей blade-систем.
Пиковая производительность420Тфлопс Реальная производительность350Тфлопс Эффективность (соотношение пиковой и реальной производительности) 83% Число вычислительных узлов4 446 Число процессоров8 892 Число процессорных ядер Число типов вычислительных узлов 3 (T-Blade2, T-Blade 1.1, платформа на базе процессора PowerXCell 8i) Основной тип вычислительных узловT-Blade2 Процессор основного типа вычислительных узловIntel® Xeon X5570 Оперативная память56 576ГБ Общий объем дисковой памяти вычислителя ГБ Занимаемая площадь252 кв.м Энергопотребление вычислителя1.5 МВт ИнтерконнектQDR Infiniband Система хранения данныхТрехуровневая с параллельной файловой системой Объем системы хранения данныхдо 1 350ТБ Операционная системаClustrx T-Platforms Edition
61 В настоящее время под кластером типаBeowulf понимается вычислительная система, состоящая из одного серверного узла и одного или более клиентских узлов, соединенных при помощи сети Ethernet или некоторой другой сети передачи данных. Это система, построенная из готовых серийно выпускающихся промышленных компонент, на которых может работать ОС Linux/Windows, стандартных адаптеров Ethernet и коммутаторов. Кластер типа Beowulf
, научно-космический центр NASA Goddard Space Flight Center, руководители проекта - Томас Стерлинг и Дон Бекер: 16 компьютеров на базе процессоров 486DX4, тактовая частота 100 MHz, 16 Mb оперативной памяти на каждом узле, три параллельно работающих 10Mbit/s сетевых адаптера, операционная система Linux, компилятор GNU, поддержка параллельных программ на основе MPI. Кластер типа Beowulf
63 –1998, Система Avalon, Лос-Аламосская национальная лаборатория (США), руководители проекта - астрофизик Майкл Уоррен: 68 процессоров (позднее расширен до 140) Alpha 21164A с тактовой частотой 533 MHz, 256 Mb RAM, 3 Gb HDD, Fast Ethernet card на каждом узле, операционная система Linux, пиковая производительность в 149 GFlops, производительность на тесте LINPACK 48.6 GFlops. Кластеры. Beowulf
64 –2000, Корнельский университет (США), результат совместной работы университета и Advanced Cluster Computing Consortium, образованного компаниями Dell, Intel, Microsoft, Giganet:Корнельский университет 64 четырехпроцессорных сервера Dell PowerEdge 6350 на базе Intel Pentium III Xeon 500 MHz, 4 GB RAM, 54 GB HDD, 100 Mbit Ethernet card, 1 восьмипроцессорный сервер Dell PowerEdge 6350 на базе Intel Pentium III Xeon 550 MHz, 8 GB RAM, 36 GB HDD, 100 Mbit Ethernet card, операционная система Microsoft Windows NT 4.0 Server Enterprise Edition, пиковая производительность AC3 Velocity 122 GFlops, производительность на тесте LINPACK 47 GFlops. Кластеры. AC3 Velocity Cluster
65 –2000, Национальный центр суперкомпьютерных технологий (National Center for Supercomputing Applications): 38 двухпроцессорных систем Hewlett-Packard Kayak XU PC workstation на базе Intel Pentium III Xeon 550 MHz, 1 Gb RAM, 7.5 Gb HDD, 100 Mbit Ethernet card,Hewlett-Packard Kayak XU PC workstation операционная система ОС Microsoft Windows, пиковая производительностью в 140 GFlops и производительность на тесте LINPACK 62 GFlops. Кластеры. NCSA NT Supercluster NT Supercluster
66 –2004, Ливерморская Национальная Лаборатория (США): 1024 сервера, в каждом по 4 процессора Intel Itanium 1.4 GHz, 8 Gb оперативной памяти на сервер, общая емкость дисковой системы 150 Tb, операционная система CHAOS 2.0, пиковая производительность GFlops и максимально показанная на тесте LINPACK GFlops (5-ая позиция списка Top500 ). Кластеры. ThunderThunder
67 Кластеры. Вычислительный кластер ННГУ
68 –2007, 64 вычислительных сервера, каждый из которых имеет 2 двухядерных процессора Intel Core Duo 2,66 GHz, 4 GB RAM, 100 GB HDD, 1 Gbit Ethernet card, пиковая производительность ~3 Tflops операционная система Microsoft Windows. Кластеры. Вычислительный кластер ННГУ