Введение

Термин "параллелизм" обычно используется как собирательное слово, характеризующее все формы одновременной обработки, встречающиеся в современных ЭВМ. В этом смысле конвейеризация– частный случай параллелизма.

Параллелизм в широком смысле открывает большие возможности для роста общей производительности и для повышения надежности.

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

  • устройство управления(УУ);

  • арифметико– логическое устройство(АЛУ);

  • запоминающее устройство(ЗУ);

  • устройство ввода- вывода(УВВ).

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

Истинный параллелизм любого рода требует одновременной работы по крайней мере двух любых устройств. Такими устройствами могут быть устройства управления, арифметико– логические устройства, запоминающие устройства и устройства ввода- вывода. Хотя одновременная работа нескольких запоминающих устройств безусловно может привести к увеличению производительности системы, они не оказывают столь сильного влияния на структуру процесса обработки, как остальные устройства.

Рис 1. ЭВМ классической структуры

В ЭВМ классической структуры устройство управления и арифметико– логическое устройство совместно образуют центральный процессор (ЦП). Увеличение числа процессоров или числа АЛУ в каждом из них приводит к соответствующему росту параллелизма. Наличие в ЭВМ нескольких процессоров означает, что одновременно, т.е. параллельно могут выполняться несколько программ или несколько фрагментов одной программы. Работа нескольких АЛУ под управлением одного УУ означает, что множество слов может обрабатываться параллельно по одной программе. Поэтому процессор с несколькими АЛУ имеет более высокую производительность, чем процессор с одним АЛУ.

Рис.2. Мультипроцессор, состоящий из общей памяти и нескольких процессоров.

Рис.3.Параллельная обработка данных по одной программе несколькими АЛУ под управлением одного УУ.

Другая форма параллелизма, конвейеризация, также требует наличия нескольких ЦП и АЛУ. В то время как одно множество данных обрабатывается на одном устройстве, другое множество данных может обрабатываться на следующем устройстве и т.д. В этом смысле в процессе обработки возникает поток данных от одного устройства (ЦП или АЛУ) к следующему. В течении всего процесса над одним множеством данных выполняются одно за другим n действий. Одновременно в "конвейере" на разных стадиях обработки может находиться от 1 до n множеств данных.

И параллелизм и конвейеризацию можно рассматривать на трех различных логических уровнях:

Параллелизм

Конвейеризация

Уровень программ

Мультипроцессор

Макроконвейер

Уровень команд

Множество АЛУ (матричный процессор)

Конвейеризация команд

Уровень слов

Множество разрядов (длина слова, если больше 1)

Конвейеризация арифметических операций

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

Рис.4. Макроконвейер.

Рис.5.Конвейер команд. Рис.6.Арифметический конвейер.

При наличии n устройств, например АЛУ, не удается достичь n- кратного увеличения производительности за счет выбора соответствующей структуры.

Шесть основных форм параллелизма, показанных на рис.1–6, позволяют построить схему классификации, в рамках которой можно описать разнообразие смешанных вычислительных структур и отразить их эволюцию.

Представление параллелизма в программах для ЭВМ.

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