Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
gordeev.doc
Скачиваний:
36
Добавлен:
17.08.2019
Размер:
1.42 Mб
Скачать

12.2.Примеры способов параллельной обработки данных

Рассмотрим SIMD системы и сосредоточимся на механизмах обработки данных.

Как мы уже говорили выше, системы SIMD делятся на два больших класса:

  1. векторно-конвейерные вычислительные системы;

  2. векторно-параллельные вычислительные системы или матричные вычислительные системы.

В основе систем этих классов лежат две технологии параллельной обработки данных: собственно параллелизм и конвейерность.

В компьютере обычно реализуются все основные типы команд: скаляр­ные, векторные и конвейерные. Команда, у которой все аргументы скалярные величины, называется скалярной командой. Если хотя бы один аргумент век­тор, команда называется векторной. Соответственно в составе компьютера мо­гут быть скалярные, векторные и конвейерные устройства.

Векторно-конвейерные вычислительные системы.

Предполагается, что система состоит из набора функциональных уст­ройств (ФУ). Результат предыдущего срабатывания ФУ может сохраняться в нем только до момента очередного срабатывания. ФУ не может одновременно выполнять операцию и сохранять результат, т.е. не имеет собственной памяти. ФУ называется простым, если никакая последующая операция не может на­чаться раньше, чем предыдущая. Конвейерное ФУ состоит из цепочки простых ФУ, которые называют элементарными. Очередная операция считается выпол­ненной после прохождения всех элементарных ФУ (ступеней конвейера).

Основные принципы, заложенные в архитектуру векторно-конвейерных систем:

  • конвейерная организация обработки потока команд;

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

Длина обрабатываемых векторов в современных векторно-конвейерных системах составляет, как правило, 128 или 256 элементов. Основное назначение векторных операций состоит в распараллеливании выполнения операторов цикла, в которых обычно сосредоточена большая часть вычислительной работы.

Современные векторно-конвейерные системы имеют иерархическую структуру:

  • на нижнем уровне иерархии расположены конвейеры операций (например, конвейер (pipeline) сложения вещественных чисел, конвейер умножения таких же чисел и т.п.);

  • некоторая совокупность конвейеров операций объединяется в конвейерное функциональное устройство;

  • векторно-конвейерный процессор содержит ряд конвейерных функциональных устройств;

  • несколько векторно-конвейерных процессоров, объединенных общей памятью, образуют вычислительный узел;

  • несколько таких узлов объединяются с помощью коммутаторов.

Каждая часть конвейера операций называется ступенью конвейера операций, а общее число ступеней - длиной конвейера операций.

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

Векторно-параллельные системы.

Как и векторно-конвейерные системы, векторно-параллельная вычислительная система обычно имеет иерархическую структуру. На нижнем уровне иерархии находятся векторно-параллельные процессоры, представляющие собой совокупность скалярных процессоров (процессорных элементов), которые объединены некоторой коммуникационной сетью и в каждом такте синхронно выполняют одну и ту же команду над разными данными. На верхнем уровне иерархии векторно-параллельные процессоры объединяются общей памятью или коммуникационной сетью. Граф такой сети не обязан быть полным, а так как обмен данными идет между соседними вершинами такого графа, а затратами на время обмена нельзя пренебрегать, то важным параметром таких систем является их диаметр d : максимум длин кратчайших путей между всеми парами вершин графа.

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

Основными компонентами векторно-параллельного процессора являются

  • совокупность скалярных процессоров (Р);

  • совокупность модулей оперативной памяти (М);

  • коммуникационная среда;

  • устройство общего управления.

Выделим две группы векторно-параллельных процессоров: процессоры с одинаковым числом скалярных процессоров и модулей памяти; векторные процессоры с различным количеством скалярных процессоров и модулей памяти. В векторно-параллельном процессоре с одинаковым числом скалярных процессоров и модулей памяти каждый скалярный процессор подключается к своему модулю памяти. Команда, выдаваемая устройством управления, содержит одинаковый адрес для всех скалярных процессоров. В векторно-параллельном процессоре с различным количество скалярных процессоров и модулей памяти основной проблемой является проблема исключения конфликтов при обращении к памяти (поскольку к одному модулю памяти могут одновременно обращаться в переделе все скалярные процессоры). Для преодоления этой проблемы в системах этого класса используют изощренные схемы хранения массивов данных.

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

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]