Векторно-параллельные системы
Как и векторно-конвейерные системы, векторно-параллельная вычислительная система обычно имеет иерархическую структуру. На нижнем уровне иерархии находятся векторно-параллельные процессоры, представляющие собой совокупность скалярных процессоров (процессорных элементов), которые объединены некоторой коммуникационной сетью и в каждом такте синхронно выполняют одну и ту же команду над разными данными. На верхнем уровне иерархии векторно-параллельные процессоры объединяются общей памятью или коммуникационной сетью, образуя NUMA-систему либо MPP систему.
Векторно-параллельные процессоры имеют в своих системах команд специальные векторные (матричные) операции, такие, как векторное и матричное сложение, умножение вектора на матрицу, умножение матрицы на константу, вычисление скалярного произведения, свертки и т.д. При выполнении векторных операций различные компоненты векторов и матриц обрабатываются параллельно на различных процессорных элементах.
Основными компонентами векторно-параллельного процессора являются
· совокупность скалярных процессоров (Р);
· совокупность модулей оперативной памяти (М);
· коммуникационная среда;
· устройство общего управления.
Выделим две группы векторно-параллельных процессоров: процессоры с одинаковым числом скалярных процессоров и модулей памяти; векторные процессоры с различным количеством скалярных процессоров и модулей памяти.
В векторно-параллельном процессоре с одинаковым числом скалярных процессоров и модулей памяти каждый скалярный процессор подключается к своему модулю памяти (см. рис. 3). Команда, выдаваемая устройством управления, содержит одинаковый адрес для всех скалярных процессоров. С помощью специального «флага» можно запретить выполнение команды на данном скалярном процессоре – «маскирование команды».
В векторно-параллельном процессоре с различным количество скалярных процессоров и модулей памяти (см. рис. 4) основной проблемой является проблема исключения конфликтов при обращении к памяти (поскольку к одному модулю памяти могут одновременно обращаться в переделе все скалярные процессоры). Для преодоления этой проблемы в системах этого класса используют изощренные схемы хранения массивов данных.
Рис. 3. Структура векторно-параллельного процессора с одинаковым числом скалярных процессоров и модулей памяти.
Рис. 4. Структура векторно-параллельного процессора с различным количеством скалярных процессоров и модулей памяти.
В историческом плане наиболее известной векторно-параллельной системой является ILLIAC-IV (Burroughs). ЭВМ имела 64 процессора, объединенных в 8*8 плоскую решетку. Пиковая производительность равнялась 100 Мфлопс.
Недостатком векторно-параллельных систем, как и векторно-конвейерных систем, является низкая, как правило, загрузка процессорных элементов. Высокая производительность векторно-параллельных систем достигается только на векторных операциях, в то время как на скалярных операциях, а также при обработке векторов и матриц небольшой размерности, значительная часть процессорных элементов может простаивать. Программирование векторно-параллельных систем сложнее, чем векторно-конвейерных систем. В целом, векторно-параллельные системы, как и векторно-конвейерные системы, характеризуются высокой производительностью только при полной загрузке их вычислительных устройств, которая достигается при решении достаточно узкого класса задач.
В качестве примера достаточно современной векторно-параллельной системы приведем вычислительную систему nCube-3 (1995 г.). Система nCube-3 масштабируется от 8 до 64 К процессорных блоков, объединенных коммуникационной сетью типа «гиперкуб» (размерностью от 3D до 16D). Максимальная производительность nCube-3 составляет несколько TFLOPS. Процессоры системы могут быть объединены в группы, каждая из которых может решать свою задачу (MIMD-режим).