ILLIAC 4 был разработан в 1970 годах. Он включал 64 процессора, работающих по одной программе, применяемой к содержимому собственной ОП каждого процессора. Обмен данными происходил через матрицу коммуникационных каналов. В связи с этим можно выделить матричные суперкомпьютеры. Более широкий класс МВС с распределенной памятью получил название МВС с массовым параллелизмом или МВС с МРР-архитектурой. Каждый процессор в такой системе является универсальным и действует по своей собственной программе. Другое направление на базе векторно-конвейерных компьютеров (CRAY 1) сформировалось направление симметричной мультипроцессорности (SMP-архитектура). В этих ЭВМ объединялось от 2 до шестнадцати процессоров, имеющих равноправный, симметричный доступ к общей ОП. SMP обладает серьёзным недостатком, заключающимся в плохой масштабируемости систем, т.е. при подключении дополнительных процессоров неизбежно наблюдается рост числа конфликтов. А также помимо этих двух систем на рынке присутствуют кластеры и векторно-конвейерные суперкомпьютеры.
Векторно-конвейерные суперкомпьютеры.
В основе данного вида ЭВМ лежат два принципа:
введение набора команд для векторных операций. Векторные операции позволяют манипулировать целыми массивами данных
конвейерная организация обработки потока команд.
Главное назначение векторных операций заключается в распараллеливании операторов цикла. Большая доля вычислительной работы связана с циклами, причем эти действия выполняются компиляторами автоматически. В процессе развития происходило слияние архитектур. Типичными представителями гибридной архитектуры были CRAY J-90, CRAY T-90, NEC SX. В данное время векторные компьютеры проигрывают МРР-системам.
Симметричные мультипроцессоры.
Характерной чертой подобных систем является то, что все процессоры имеют прямой равноправный доступ к любой точке общей памяти. Проблему масштабируемости удалось частично снять разделением памяти на блоки. Однако оказалось, что к одному блоку в любом случае не могут быть подключены более, чем 32 процессора.
UMA – Unified Memory Architecture (унифицированная архитектура памяти (память с однородным доступом)).
NUMA – Non Unified Memory Architecture (архитектура неоднородной памяти).
SMP – Symmetric Multi Processing (симметричная мультипроцессорность).
Разделение типов суперкомпьютеров основывается на способах организации ОП. Согласно данному подходу различают 2 типа многопроцессорных систем: мультипроцессоры и мультикомпьютеры. У мультикомпьютеров память распределенная.
Мультипроцессоры с системой общей разделяемой памятью.
Для систематики мультипроцессоров учитывается способ построения общей памяти.
Два подхода: UMA, NUMA (однородный и неоднородный).
Одной из главных проблем, возникающих при организации параллельных вычислений на суперкомпьютерах с общей памятью – это доступ с разных процессоров к общим данным и обеспечение в этой связи когерентности, т.е. однозначности содержимого разных КЭШей. Суть в том, что при наличии общих данных копии значений одних и тех же переменных могут оказаться в КЭШах разных процессоров. При этом, если один из процессоров изменит значения разделяемой переменной, то значения копий в КЭШах других процессоров окажутся недействительными и их использование приведет к некорректности расчетов. Обеспечение однозначности КЭШей реализуется на аппаратном уровне. Для этого после изменения значения общей переменной все копии этой переменной в остальных КЭШах отмечаются как недействительные, и последующий доступ к этой переменной потребует обязательного обращения к основной памяти. Необходимость обеспечения когерентности приводит к снижению скорости вычислений и затрудняет создание систем с большим количеством процессоров. Наличие общих данных при параллельных вычислениях приводит к необходимости синхронизации одновременно выполняемых потоков команд. Общий доступ к данным может быть обеспечен и при физически распределенной памяти. Этот подход именуется неоднородный доступ к памяти. Среди этих систем выделяют:
системы, в которых для представления данных используется только локальная кэш-память (СОМА). Примеры: KSR-1, DDM.
системы, которых обеспечивается когерентность локальных КЭШей разных процессоров (СС). Примеры: SGI Orgin, Sun HPC, IBM/Sequent.
системы, в которых обеспечивается общий доступ к локальной памяти разных узлов без поддержки на аппаратном уровне когерентности КЭШа (NCC). Примеры: Cray T3E.
Использование распределенной общей памяти упрощает создание производительных суперкомпьютеров. Однако возникающие проблемы приводят к существенному повышению сложности параллельного программирования.