Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Параллельные вычисления лекции.doc
Скачиваний:
67
Добавлен:
10.02.2016
Размер:
979.46 Кб
Скачать

Лекция 11. Крупнозернистый параллелизм

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

Классификация Флинна

Существует много классификаций для крупноформатного параллелизма .

Одна из них – классификация Флинна, предложенная в 1970 году, получила

большое распространение. Флинн ввел два рабочих понятия: поток команд и

поток данных. Под потоком команд упрощенно понимают последовательность

выполняемых команд одной программы. Поток данных – это последователь-

ность данных, обрабатывемых одним потоком команд. На этой основе Флинн

построил свою классификацию параллельных ЭВМ с крупнозернистым парал-

лелизмом:

1) ОКОД (одиночный поток команд одиночный поток данных) или SISD (Single Instruction − Single Data). Это обычные последовательные ЭВМ, в которых выполняется одна программа. Здесь может использоваться конвейерная обработка в единственном потоке команд.

2) ОКМД (одиночный поток командмножественный поток данных) или SIMD (Single Instruction – Multiple Data). В таких ЭВМ выполняется единственная программа, но каждая ее команда обрабатывает много чисел. Это соответствует векторной форме параллелизма, реализованноq в машинах CRAY.

3) МКОД (множественный поток командодиночный поток данных) или MISD (Multiple Instruction − Single Data). Здесь несколько команд одновременно работает с одним элементом данных. Этот класс не нашел применения на практике.

4) МКМД и (множественный поток команд множественный поток данных) или MIMD (Multiple Instruction − Multiple Data). В таких ЭВМ одновре-

менно и независимо друг от друга выполняется несколько программных ветвей,

в определенные промежутки времени обменивающихся данными. Такие систе-

мы обычно называют многопроцессорными. Этот класс разделяется на два больших подкласса:

1. С общей для всех процессоров памятью. Это упрощает оборудование, но количество процессоров ограничено пропускной способностью памяти.

2. С индивидуальной памятью для каждого процессора. Число процессоров не ограничивается, но межпроцессорный обмен данными снижает потен-

циальное ускорение.

С течение времени появилась разновидность этой технологии, называемая SPMD (Single Program − Multiple Data), которая используется в многопроцессорных системах с обшей памятью SMP (Symmetric Multiprocessing).

Таким образом, далее будут рассмотрены только два класса параллельных

ЭВМ: SIMD (SPMD) и MIMD. SIMD –ЭВМ в свою очередь делятся на два

подкласса: векторно-конвейерные ЭВМ и процессорные матрицы.

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

Векторно-конвейерная ЭВМ CRAY относится к классу ОКМД ЭВМ.

Но ее отличием от других ЭВМ этого класса является наличие развитой систе-

мы арифметических конвейеров, которые и обеспечивают ее быстродействие.

На рисунке представлен принцип постороения системы с арифметическим

конвейером. Обычно в конвейере команд самым медленным звеном («узким»

местом трубопровода) является этап исполнения арифметических операций

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

- полное время выполнения команды

- время такта конвейера команд

- время такта арифметического конвейера

Ниже приведены некоторые способы построения арифметических конвейеров. На рисунке 1 представлена схема конвейера для сложения потока чисел с плавающей запятой, а на рисунке 2 – для умножения чисел. Такие конвейеры можно построить практически для всех команд.

Дешифратор частных произведений

Впервые арифметические конвейеры были использованы для целей обра-

ботки числовых векторов в ЭВМ STAR-100, запущенной в США в 1973 г., а за-

тем на этом принципе была построена знаменитая ЭВМ CRAY-1, которая стала

родоначальником множества векторно-конвейерных ЭВМ различных компаний

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

вается в организацию CRAY-1, как “скрипка в футляр”.

ОКМД ЭВМ CRAY обладает рядом особенностей:

• Класс – ОКМД, система с общей памятью. Все АЛУ – конвейерные.

• Большой объем векторных регистров (сотни в новых машинах) снижает

нагрузку на общую память.

• Выполнение команд в скалярном процессоре управляется потоком дан-

ных.

• Со временем эта архитектура была реализована в виде одного микропро

цессора в состве многопроцессорной ЭВМ.Такие ЭВМ занимают по бы-

стродействию первые места в списке TOP 500.

ЭВМ CRAY состоит из скалярного и векторного процессоров (на рисунке). Скалярный процессор выбирает из памяти и выполняет скалярные и векторные команды, но скалярные – целиком, а арифметическую часть векторных команд передает в векторный процессор.

Скалярный процессор. Ускорение векторных вычислений согласно закону Амдала очень чуствительно к времени выполнения скалярных операций. Это время можно уменьшить двояко:

• Уменьшить количество скалярных операций, что не всегда возможно

• Увеличить быстродействие скалярного процессора. Именно это и сделано в CRAY.

Вопросы для самоконтроля.

  1. Охарактеризуйте классификацию Флинна крупнозернистого параллелизма.

  2. Арифметические конвейеры и их особенности