Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Параллельные вычисления.doc
Скачиваний:
3
Добавлен:
01.07.2025
Размер:
248.32 Кб
Скачать

Классификация вычислительных систем.

Первая классификация предложена Флинном. Данная классификация основывается на двух понятиях: поток команд и поток данных. На основе числа этих потоков выделяются 4 класса архитектур:

  1. SISD – один поток команд, один поток данных.

  2. SIMD – один поток команд, много потоков данных. Данный класс составляют многопроцессорные вычислительные системы (МВС), в которых в каждый отдельный момент времени может выполняться одна и та же команда для обработки нескольких информационных элементов. Подобной архитектурой обладают многопроцессорные системы с единственным устройством управления.

  3. MISD – много потоков команд, один поток данных. Возможно сюда отнести систолические вычислительные системы или системы с конвейерной обработкой данных.

  4. MIMD – много потоков команд, много потоков данных. К данному классу относятся практически все многопроцессорные системы.

Обзор архитектур многопроцессорных систем.

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 (симметричная мультипроцессорность).

PVP – Parallel Vector Processors.

NCC-NUMA – Non Coherent Cash (некогерентный кэш).

CC-NUMA –Coherent Cash (когерентный кэш).

СОМА – Cash Only Memory Access.

MPP – Massively Parallel Processing (массивные параллельные вычисления).

ТОП–10 современных суперкомпьютеров.

  1. Tianhe-2 (Milky Way 2) – кластер, Intel 1200 ГГц, ядер – 3 млн. 120 тыс. производительность – 33863 TeraFlops, теоретическая – 55 TeraFlops. Мощность – 18000 КВт, память – 1024000 Гб.

  2. Titan (Cray XK7) – 2,2 ГГц, ядер – 560640, производительность – 17,6 PetaFlops, теоретическая – 27 PetaFlops, мощность – 10000 КВт, память – 710 Тб.

  3. Sequoia (BlueGene/Q) – 1,6 ГГц, IBM, 1573000, 17 PetaFlops, 20 PetaFlops, 7000 КВт, 1,5 Пб.

  4. SuperMUC

Разделение типов суперкомпьютеров основывается на способах организации ОП. Согласно данному подходу различают 2 типа многопроцессорных систем: мультипроцессоры и мультикомпьютеры. У мультикомпьютеров память распределенная.

Мультипроцессоры с системой общей разделяемой памятью.

Для систематики мультипроцессоров учитывается способ построения общей памяти.

Два подхода: UMA, NUMA (однородный и неоднородный).

Одной из главных проблем, возникающих при организации параллельных вычислений на суперкомпьютерах с общей памятью – это доступ с разных процессоров к общим данным и обеспечение в этой связи когерентности, т.е. однозначности содержимого разных КЭШей. Суть в том, что при наличии общих данных копии значений одних и тех же переменных могут оказаться в КЭШах разных процессоров. При этом, если один из процессоров изменит значения разделяемой переменной, то значения копий в КЭШах других процессоров окажутся недействительными и их использование приведет к некорректности расчетов. Обеспечение однозначности КЭШей реализуется на аппаратном уровне. Для этого после изменения значения общей переменной все копии этой переменной в остальных КЭШах отмечаются как недействительные, и последующий доступ к этой переменной потребует обязательного обращения к основной памяти. Необходимость обеспечения когерентности приводит к снижению скорости вычислений и затрудняет создание систем с большим количеством процессоров. Наличие общих данных при параллельных вычислениях приводит к необходимости синхронизации одновременно выполняемых потоков команд. Общий доступ к данным может быть обеспечен и при физически распределенной памяти. Этот подход именуется неоднородный доступ к памяти. Среди этих систем выделяют:

  1. системы, в которых для представления данных используется только локальная кэш-память (СОМА). Примеры: KSR-1, DDM.

  2. системы, которых обеспечивается когерентность локальных КЭШей разных процессоров (СС). Примеры: SGI Orgin, Sun HPC, IBM/Sequent.

  3. системы, в которых обеспечивается общий доступ к локальной памяти разных узлов без поддержки на аппаратном уровне когерентности КЭШа (NCC). Примеры: Cray T3E.

Использование распределенной общей памяти упрощает создание производительных суперкомпьютеров. Однако возникающие проблемы приводят к существенному повышению сложности параллельного программирования.