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

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

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

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

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

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

Параллелизм

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

Программы

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

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

Команды

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

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

Данные

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

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

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

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

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

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

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

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

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

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