Средства программирования для многопроцессорных вычислительных систем. Немнюгин C.А. - 10 стр.

UptoLike

Составители: 

10
Две парадигмы параллельного программирования
На
рис
. 9
представлен
информационный
граф
,
показывающий
,
что
в
общем
случае
в
программе
присутствуют
как
параллелизм
данных
,
так
и
параллелизм
задач
.
Рис. 9.
Параллелизм
задач
и
параллелизм
данных
Параллелизм данных
Наличие
нескольких
стрелок
,
связывающих
соседние
вершины
информационного
графа
,
означает
применение
одной
операции
сразу
к
нескольким
элементам
данных
(
массиву
).
Различные
фрагменты
такого
массива
могут
обрабатываться
на
векторном
процессоре
или
на
разных
процессорах
параллельной
вычислительной
системы
.
Векторизация
или
распараллеливание
в
рамках
данного
подхода
выполняются
во
время
трансляции
.
В
этом
случае
при
разработке
параллельного
приложения
от
программиста
требуется
:
задание
опций
векторной
или
параллельной
оптимизации
транслятору
;
задание
директив
параллельной
компиляции
;
использование
специализированных
языков
параллельных
вычислений
,
библиотек
подпрограмм
,
специально
разработанных
с
учетом
конкретной
архитектуры
компьютера
и
оптимизированных
для
этой
архитектуры
.
Основные
особенности
данного
подхода
перечислены
ниже
:
обработкой
данных
управляет
одна
программа
;
пространство
имен
является
глобальным
;
параллельные
операции
над
элементами
массива
выполняются
одновременно
на
всех
доступных
данной
программе
процессорах
.
При
программировании
на
основе
параллелизма
данных
часто
используются
специализированные
языки
или
надстройки
над
языками
DVM Fortran, HPF (High
Perfomance Fortran)
и
другие
.
Реализация
модели
параллелизма
данных
требует
поддержки
параллелизма
на
уровне
транслятора
.
Такую
поддержку
могут
обеспечивать
:
препроцессоры
,
использующие
существующие
последовательные
трансляторы
и
специализированные
библиотеки
,
с
реализациями
параллельных
алгоритмических
конструкций
;