w - количество разрядов, содержимое которых обрабатывается одновременно (параллельно) одним арифметико-логическим устройством.
Другая форма распараллеливания - конвейеризация, также требует наличия нескольких ЦП или АЛУ. В то время, как множество данных обрабатывается на одном устройстве, другое множество данных может обрабатываться на следующем устройстве и т.д., при этом в процессе обработки возникает поток данных от одного устройства (ЦП или АЛУ) к следующему. В течение всего процесса над одним множеством данных выполняется одно за другим n действий. Одновременно в конвейере на разных стадиях обработки могут находиться от 1 до n данных.
Параллелизм и конвейеризацию можно рассматривать на трех различных уровнях, представленных в таблице 2. Шесть основных форм параллелизма, в широком смысле этого слова, позволяют построить схему классификации, в рамках которой можно описать разнообразие высокопроизводительных вычислительных систем и отразить их эволюцию.
Таблица 2 - Классификация МВС по типу распараллеливания
Уровень параллелизма | Параллелизм | Конвейеризация |
Программы | Мультипроцессор | Макроконвейер |
Команды | Матричный процессор | Конвейер команд |
Данные | Множество разрядов | Арифметический конвейер |
В векторных суперЭВМ обеспечена предельная производительность для процессов скалярной и векторной обработки, которая присутствует в большинстве задач. Задачи, содержащие высокую степень внутреннего параллелизма, могут быть хорошо адаптированы к системам массового параллелизма. Реальные задачи и, тем более, пакеты задач содержат целый ряд алгоритмов, имеющих различные уровни параллелизма.
Все это говорит о том, что вместо попыток приспособить все типы алгоритмов к одной архитектуре, что отражается на конфигурации архитектур и сопровождается не всегда корректными сравнениями пиковой производительности, более продуктивным является взаимодополнение архитектур в единой системе. Одним из первых примеров такой системы является объединение векторной системы Cray Y-XM с системой Cray T3D. Однако, это объединение с помощью высокоскоростного канала приводит к необходимости разбиения задач на крупные блоки и к потерям времени и памяти на обмен информацией.
Ситуация в данном случае подобна той, которая существовала до появления векторных машин. Для решения задач, содержащих большое число операций над векторами и матрицами, использовались так называемые матричные процессоры, например, фирмы FSP, которые подключались к универсальной машине с помощью канала ввода/вывода. Интеграция скалярной и векторной обработки в одном процессоре наряду с обеспечением высокой скорости работы синхронного конвейера обеспечила успех векторных машин.
Следующим логическим шагом является интеграция скалярной, векторной и параллельной обработки. Благодаря этому, может быть достигнута высокая реальная производительность за счет распределения отдельных частей программы по подсистемам с различной архитектурой. Естественно, это распределение работы должно быть поддержано аппаратно-программными средствами автоматизации программирования. Эти средства должны содержать возможность интерактивного вмешательства программиста на этапе анализа задачи и возможность моделирования или пробного запуска программы с измерением параметров эффективности. Следует подчеркнуть, что формы параллелизма в алгоритмах достаточно разнообразны, поэтому и их аппаратное отражение может быть различным. К наиболее простым можно отнести системы с одним потоком команд и множественными потоками данных, системы с множественными потоками команд и данных, систолические системы.
Одним из многообещающих подходов, обеспечивающих автоматическое распараллеливание, является принцип потока данных, при котором последовательность или одновременность вычислений определяется не командами, а готовностью операндов и наличием свободного функционального арифметического устройства. Однако, и в этом случае степень реального распараллеливания зависит от внутреннего параллелизма алгоритма и, очевидно, нужны эффективные способы подготовки задач. Кроме того, для реализации таких систем необходимо создание ассоциативной памяти для поиска готовых к работе пар операндов и систем распределения вычислений по большому числу функциональных устройств.
Аппаратная реализация параллельных подсистем полностью зависит от выбранных микропроцессоров, БИС памяти и других компонентов. В настоящее время по экономическим причинам целесообразно использовать наиболее высокопроизводительные микропроцессоры, разработанные для унипроцессорных машин.
Вместе с тем, существуют подходы, связанные с применением специализированных микропроцессоров, ориентированных на использование в параллельных системах. Типичным примером является серия транспьютеров фирмы Inmos. Однако, из-за ограниченного рынка эта серия по производительности резко отстала от универсальных микропроцессоров, таких, как Alpha, Power PC, Pentium. Специализированные микропроцессоры смогут быть конкурентноспособными только при условии сокращения расходов на проектирование и освоение в производстве, что в большой степени зависит от производительности инструментальных вычислительных средств, используемых в системах автоматизированного проектирования.
В различных вычислительных машинах использовались различные подходы, направленные на достижение, в первую очередь, одной из следующих целей:
- максимальная арифметическая производительность процессора;
- эффективность работы операционной системы и удобство общения с ней для программиста;
- эффективность трансляции с языков высокого уровня и исключение написания программ на автокоде;
- эффективность распараллеливания алгоритмов для параллельных архитектур.
Однако, в любой машине необходимо в той или иной форме решать все указанные задачи. Отметим, что сначала этого пытались достичь с помощью одного или нескольких одинаковых процессоров.
Дифференциация функций и специализация отдельных подсистем начала развиваться с появления отдельных подсистем и процессоров для обслуживания ввода/вывода, коммуникационных сетей, внешней памяти и т.п.
В суперЭВМ кроме основного процессора (машины) включались внешние машины. В различных системах можно наблюдать элементы специализации в направлениях автономного выполнения функций операционной системы, системы программирования и подготовки заданий.
Во-первых, эти вспомогательные функции могут выполняться параллельно с основными вычислениями. Во-вторых, для реализации не требуются многие из тех средств, которые обеспечивают высокую производительность основного процессора, например, возможность выполнения операций с плавающей запятой и векторных операций. В дальнейшем, при интеграции скалярной, векторной и параллельной обработки в рамках единой вычислительной подсистемы состав этих вспомогательных функций должен быть дополнен функциями анализа программ с целью обеспечения требуемого уровня параллелизма и распределения отдельных частей программы по различным ветвям вычислительной подсистемы.
Появление суперЭВМ сопровождалось повышением их общей мощности потребления (выше 100 кВт) и увеличением плотности тепловых потоков на различных уровнях конструкции. Их создание не в последнюю очередь оказалось возможным, благодаря использованию эффективных жидкостных и фреоновых систем охлаждения. Является ли значительная мощность существенным признаком суперЭВМ? Ответ на этот вопрос зависит от того, что вкладывается в понятие суперЭВМ.
Если считать, что суперЭВМ или, точнее, суперсистема - это система с наивысшей возможной производительностью, то энергетический фактор остается одним из определяющих эту производительность. По мере развития технологии мощность одного вентиля в микропроцессорах уменьшается, но при повышении производительности процессора за счет параллелизма общая мощность в ряде случаев растет. При объединении большого числа микропроцессоров в системе с массовым параллелизмом интегральная мощность и тепловыделение становятся соизмеримыми с аналогичными показателями для векторно-конвейерных систем. Однако, иногда в рекламных целях параллельные системы с небольшим числом процессоров сравниваются с суперкомпьютерами предыдущего или более раннего поколений, чтобы показать их преимущества в смысле простоты и удобства эксплуатации. Естественно, из такого некорректного сравнения нельзя сделать вывод о целесообразности создания современных суперсистем.
Основным стимулом создания суперсистем являются потребности решения больших задач. В свою очередь, исследования и разработки по суперсистемам стимулируют целый комплекс фундаментальных и прикладных исследований, результаты которых используются в дальнейшем в других областях. Прежде всего, это касается архитектуры и схемотехники вычислительных машин, высокочастотных интегральных схем и средств межсоединений, эффективных систем отвода тепла. Не менее важны результаты по методам распараллеливания при выполнении отдельных операций и участков программ на аппаратном уровне, методам построения параллельных алгоритмов, языков и программных систем для эффективного решения больших задач.