Классификация по степени однородности
По степени однородности различают однородные (гомогенные) и неоднородные (гетерогенные) вычислительные системы. Обычно при этом имеется в виду тип используемых процессоров.
В однородных вычислительных системах (гомогенных вычислительных системах) используются одинаковые процессоры, в неоднородных вычислительных системах (гетерогенных вычислительных системах) – процессоры различных типов. Вычислительная система, содержащая какой-либо специализированный вычислитель (например, Фурье-процессор), относится к классу неоднородных вычислительных систем.
В настоящее время большинство высокопроизводительных систем относятся к классу однородных систем с общей памятью или к классу однородных систем с распределенной памятью.
Рассмотренные классификационные признаки параллельных вычислительных систем не исчерпывают всех возможных их характеристик. Существует, например, еще разделение систем по степени согласованности режимов работы (синхронные и асинхронные вычислительные системы), по способу обработки (с пословной обработкой и ассоциативные вычислительные системы), по жесткости структуры (системы с фиксированной структурой и системы с перестраиваемой структурой), по управляющему потоку (системы потока команд -instruction flow и системы потока данных — data flow) и т.п.
Современные высокопроизводительные системы имеют, как правило, иерархическую структуру. Например, на верхнем уровне иерархии система относится к классу MIMD, каждый процессор которой представляет собой систему MIMD или систему SIMD.
Отметим также тенденцию к построению распределенных систем с программируемой структурой. В таких системах нет общего ресурса, отказ которого приводил бы к отказу системы в целом – средства управления, обработки и хранения информации распределены по составным частям системы. Такие системы обладают способностью автоматически реконфигурироваться в случае выхода из строя отдельных их частей. Средства реконфигурирования позволяют также программно перестроить систему с целью повышения эффективности решения на этой системе данной задачи или класса задач.
Векторно-конвейерные системы и векторно-параллельные (SIMD-системы)
Векторно-конвейерные вычислительные системы.
Векторно-конвейерные вычислительные системы относятся к классу SIMD-систем. Основные принципы, заложенные в архитектуру векторно-конвейерных систем:
· конвейерная организация обработки потока команд;
· введение в систему команд набора векторных операций, которые позволяют оперировать с целыми массивами данных.
Длина обрабатываемых векторов в современных векторно-конвейерных системах составляет, как правило, 128 или 256 элементов. Основное назначение векторных операций состоит в распараллеливании выполнения операторов цикла, в которых обычно сосредоточена большая часть вычислительной работы.
Первый векторно-конвейерный компьютер Cray-1 появился в 1976 году. Архитектура этого компьютера оказалась настолько удачной, что он положил начало целому семейству компьютеров.
Современные векторно-конвейерные системы имеют иерархическую структуру:
· на нижнем уровне иерархии расположены конвейеры операций (например, конвейер (pipeline) сложения вещественных чисел, конвейер умножения таких же чисел и т.п.);
· некоторая совокупность конвейеров операций объединяется в конвейерное функциональное устройство;
· векторно-конвейерный процессор содержит ряд конвейерных функциональных устройств;
· несколько векторно-конвейерных процессоров (2-16), объединенных общей памятью, образуют вычислительный узел;
· несколько таких узлов объединяются с помощью коммутаторов, образуя либо NUMA-систему либо MPP-систему.
Типичными представителями такой архитектуры являются компьютеры CRAY J90/T90, CRAY SV1, NEC SX-4/SX-5. Уровень развития микроэлектронных технологий не позволяет в настоящее время производить однокристальные векторно-конвейерные процессоры, поэтому эти системы довольно громоздки и чрезвычайно дороги.
Каждая часть конвейера операций называется ступенью конвейера операций, а общее число ступеней - длиной конвейера операций.
Пример 1
Рассмотрим следующий 4-х ступенчатый конвейер операций сложения вещественных чисел
Таблица 1
Номер ступени | Наименование |
Вычитание порядков | |
Сдвиг одной из мантисс | |
Сложение мантисс | |
Нормализация |
Положим, что выполняется сложение двух -векторов вещественных чисел . Диаграмма сложения этих векторов приведена на рис. 1
Рис. 1. К примеру 1. Временная диаграмма сложения (n*1)-векторов вещественных чисел X ,Y на 4-х ступенчатом конвейере операции сложения.
В векторно-конвейерных системах в рамках одного конвейерного функционального устройства широко используется (т.е. аппаратно поддерживается) зацепление конвейеров операций. Покажем суть этой процедуры на примере.
Пример 2
Положим, что в некоторой прикладной программе, исполняемой на векторно-конвейерной системе , необходимо вычислить
(1) |
где - -векторы вещественных чисел, под произведением и делением векторов понимается их покомпонентное умножение и деление, соответственно. Иными словами, операции, указанные в выражении (1), понимаются в смысле
(2) |
Положим также, что конвейерное функциональное устройство данной векторно-конвейерной системы имеет следующие конвейеры операций:
· конвейер сложения вещественных чисел;
· конвейер умножения вещественных чисел;
· конвейер деления вещественных чисел
Тогда для повышения скорости вычисления компонент вектора E целесообразно использовать зацепление указанных конвейеров (см. рис. 2). В результате, можно сказать, получается новый конвейер, который выполняет сложную операцию (2)
Рис. 2. К примеру 2. К зацеплению конвейеров.
Конвейер операций не следует путать с конвейером команд, в котором при исполнении одной команды готовится к исполнению несколько следующих команд. Так же, как в конвейере операций каждая часть конвейера команд называется ступенью конвейера команд, а общее число ступеней – длиной конвейера команд. Конвейеры команд широко используются в современных процессорах. Так процессор Intel 486 имеет 5-ти ступенчатый конвейер выполнения целочисленных команд, ступенями которого являются следующие операции:
· предвыборка (команда извлекается из КЭШ-памяти и размещается в одном из двух 16-байтовых буферах);
· декодирование;
· генерация адреса;
· исполнение в АЛУ;
· запись результата в КЭШ-память.
Процессор Pentium 2 (суперскалярная архитектура) имеет два 8-ми ступенчатых конвейера целочисленных команд.
Кроме конвейеров в векторно-конвейерных системах для ускорения работы используют различные механизмы адресации, операции с автоинкрементом (автодекрементом) адреса, механизмы ускоренной выборки и записи (многопортовая память, память с расслоением и т.д.), отдельное адресное обрабатывающее устройство, отдельное скалярное устройство для выполнения скалярных операций и пр..
Недостатком векторно-конвейерных систем является невысокая загрузка процессорных элементов. Высокая производительность достигается только на операциях с длинными векторами. На скалярных операциях и при обработке векторов и матриц невысокой размерности значительная часть устройств может простаивать. В целом, векторно-конвейерные системы характеризуются высокой производительностью при полной загрузке их вычислительных устройств, которая имеет место только при решении определенного, достаточно узкого, круга задач.
В качестве примера векторно-конвейерной системы приведем легендарную супер-ЭВМ CYBER-205 фирмы CDC. CYBER-205 имеет следующие конвейерные функциональные устройства:
· одно конвейерное функциональное устройство «скалярных» операций с конвейерами
o сложения (5-ти ступенчатый);
o умножения (5-ти ступенчатый);
o логических операций сложения (3-х ступенчатый);
o цикла;
o извлечения корня;
o деления;
· 1, 2 или 4 конвейерных функциональных устройства «векторных» операций с конвейерами
o сложения;
o умножения;
o сдвига;
o логических операций;
o задержки.
В качестве примера современной супер-ЭВМ, использующей векторно-конвейерные процессоры, приведем японскую систему Fujitsu-VPP5000. На верхнем уровне Fujitsu-VPP5000 имеет MPP архитектуру. Производительность одного процессора системы составляет 9.6 Гфлопс, пиковая производительность системы может достигать 1249 Гфлопс, максимальная емкость памяти - 8 Тб. Система масштабируется до 512 узлов.