Тенденции и перспективы развития СуперЭВМ

Параллельная вычислительная система с общей памятью и шинной организацией обмена (машина 1) позволяет каждому процессору системы «видеть», как решается задача в целом, а не только те части, над которыми он работает. Общая шина, связанная с памятью, вызывает серьезные проблемы для обеспечения высокой пропускной способности каналов обмена. Одним из способов обойти эту ситуацию является использование кэш-памяти (машина 2). В этом случае возникает проблема когерентности содержимого кэш-памяти и основной. Другим способом повышения производительности систем является отказ от центральной памяти (машина 3).

Таблица 1 — Классификация МВС по типам памяти и передачи сообщений

Типы передачи

Типы памяти

Сообщений

Общая память

Общая и распределенная

Распределенная память

Шинные соединения

1.

2.

3.

Фиксированные перекрестные соединения

4.

5.

6.

Коммутационные структуры

7.

8.

9.

Идеальной машиной является вычислительная система, у которой каждый процессор имеет прямые каналы связи с другими процессорами, но в этом случае требуется чрезвычайно большой объем оборудования для организации межпроцессорных обменов. Определенный компромисс представляет сеть с фиксированной топологией, в которой каждый процессор соединен с некоторым подмножеством процессоров системы. Если процессорам, не имеющим непосредственного канала обмена, необходимо взаимодействовать, они передают сообщения через промежуточные процессоры. Одно из преимуществ такого подхода — не ограничивается рост числа процессоров в системе. Недостаток — требуется оптимизация прикладных программ, чтобы обеспечить выполнение параллельных процессов, для которых необходимо активное воздействие на соседние процессоры.

Наиболее интересным вариантом для перспективных параллельных вычислительных комплексов является сочетание достоинства архитектур с распределенной памятью и каналами межпроцессорного обмена. Один из возможных методов построения таких комбинированных архитектур — конфигурация с коммутацией, когда процессор имеет локальную память, а соединяются процессоры между собой с помощью коммутатора (машина 9). Коммутатор может оказаться весьма полезным для группы процессоров с распределяемой памятью (машина 8). Данная конфигурация похожа на машину с общей памятью (машина 7), но здесь исключены проблемы пропускной способности шины.

Основным недостатком классификации Т. Джона является скрытие уровня параллелизма в системе, а, как уже было сказано выше параллелизм любого рода требует одновременной работы, по крайней мере, двух устройств.

Такими устройствами могут быть:

  • арифметико-логические устройства (АЛУ)
  • устройства управления (УУ).

В ЭВМ классической архитектуры УУ и АЛУ образуют процессор. Увеличение числа процессоров или числа АЛУ в каждом из них приводит к соответствующему росту параллелизма. Наличие в ЭВМ нескольких процессоров означает, что одновременно (параллельно) могут выполняться несколько программ или несколько фрагментов одной программы. Работа нескольких АЛУ под управлением одного УУ означает, что множество данных может обрабатываться параллельно по одной программе. В соответствии с этим описание структур параллельных систем можно представить в виде упорядоченной тройки:

<k, d, w>,

где k — количество устройств управления, т. е. наибольшее количество независимо и одновременно выполняемых программ в системе;

d — количество АЛУ, приходящихся на одно устройство управления;

w — количество разрядов, содержимое которых обрабатывается одновременно (параллельно) одним арифметико-логическим устройством.

Другая форма распараллеливания — конвейеризация, также требует наличия нескольких ЦП или АЛУ. В то время, как множество данных обрабатывается на одном устройстве, другое множество данных может обрабатываться на следующем устройстве и т. д., при этом в процессе обработки возникает поток данных от одного устройства (ЦП или АЛУ) к следующему. В течение всего процесса над одним множеством данных выполняется одно за другим n действий. Одновременно в конвейере на разных стадиях обработки могут находиться от 1 до n данных.

Параллелизм и конвейеризацию можно рассматривать на трех различных уровнях, представленных в таблице 2. Шесть основных форм параллелизма, в широком смысле этого слова, позволяют построить схему классификации, в рамках которой можно описать разнообразие высокопроизводительных вычислительных систем и отразить их эволюцию.

Таблица 2 — Классификация МВС по типу распараллеливания

Уровень параллелизма

Параллелизм

Конвейеризация

Программы

Мультипроцессор

Макроконвейер

Команды

Матричный процессор

Конвейер команд

Данные

Множество разрядов

Арифметический конвейер

Все вышесказанное свидетельствует о том, что вместо попыток приспособить все типы алгоритмов к одной архитектуре (что отражается на конфигурации архитектур и сопровождается не всегда корректными сравнениями пиковой производительности), более продуктивным является взаимодополнение архитектур в единой системе.

Одним из первых примеров такой системы является объединение векторной системы Cray Y-XM с системой Cray T3D: это объединение с помощью высокоскоростного канала приводит к необходимости разбиения задач на крупные блоки и к потерям времени и памяти на обмен информацией. Таким образом, ситуация в данном случае подобна той, которая существовала до появления векторных машин, когда для решения задач, содержащих большое число операций над векторами и матрицами, использовались так называемые матричные процессоры, например, фирмы FSP, которые подключались к универсальной машине с помощью канала ввода/вывода. Интеграция скалярной и векторной обработки в одном процессоре наряду с обеспечением высокой скорости работы синхронного конвейера обеспечила успех векторных машин.

Следующий логический шаг — интеграция скалярной, векторной и параллельной обработки. Это поможет достигнуть высокой реальной производительности за счет распределения отдельных частей программы по подсистемам с различной архитектурой. Очевидно, что это распределение работы должно быть поддержано аппаратно-программными средствами автоматизации программирования.

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

Дифференциация функций и специализация отдельных подсистем начала развиваться с появления отдельных подсистем и процессоров для обслуживания ввода/вывода, коммуникационных сетей, внешней памяти и т. п.

В векторных суперЭВМ обеспечена предельная производительность для процессов скалярной и векторной обработки, которая присутствует в большинстве задач. Задачи, содержащие высокую степень внутреннего параллелизма, могут быть хорошо адаптированы к системам массового параллелизма. Реальные задачи и, тем более, пакеты задач содержат целый ряд алгоритмов, имеющих различные уровни параллелизма. В суперЭВМ кроме основного процессора (машины) включались внешние машины. В различных системах можно наблюдать элементы специализации в направлениях автономного выполнения функций операционной системы, системы программирования и подготовки заданий. Обычно это выражается в следующей форме: