Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Буланкин В.Б / Учебное пособие Гергель В.П..doc
Скачиваний:
234
Добавлен:
22.03.2015
Размер:
1.16 Mб
Скачать

Использование параллелизма среднего уровня ()

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

.

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

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

-       множество процессоров разбивается на непересекающиеся процессорные группы

,

при этом группа ,, состоит изпроцессоров и используется для выполненияитерации каскадного алгоритма (группаприменяется для реализации поэлементного умножения); общее количество процессоров;

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

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

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

Рис. 4.6. Состояние конвейера для операции умножения строки матрицы на вектор после выполнения 2 итераций

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

.

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

Как результат, показатели эффективности алгоритма определяются соотношениями следующего вида:

, ,

.

3. Выбор топологии вычислительной системы. Целесообразная топология вычислительной системы полностью определяется вычислительной схемой – это полное бинарное дерево высотой . Количество передач данных при такой топологии сети определяется общим количеством итераций, выполняемых конвейером, т.е.

.

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

Анализ трудоемкости выполняемых коммуникационных действий для вычислительных систем с другими топологиями межпроцессорных связей предполагается осуществить в качестве самостоятельного задания (см. также п. 3.4).