Параллельные вычисления. Баканов В.М. - 79 стр.

UptoLike

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

- 79 -
D-система, Polaris и др., (
*
). Основой для решений о распараллеливании яв-
ляется граф зависимостей по данным (строится по исходному тексту про-
граммы), в некоторых случаях используется дополнительная информация о
глубине зависимости для гнезда циклов или векторов направлений зависимо-
сти. Исследование графа выявляет как области нераспараллеливания или по-
следовательного исполнения, так и структуру таких областей. Например,
изучение контуров зависимости на предмет однородности дуг контура может
показать, что контур может быть разрушен. Здесь возможно применение пре-
образований типа переименования переменных.
В нашей стране также разрабатывались системы подобного типа - напр.,
cистема программирования для ПС-3000 для МВК ПС-3000 (включает язык
программирования Фортран’77ВП, являющийся расширением стандарта For-
tran’77 средствами организации
векторных и параллельных вычислений),
Система М10 (М.А.Карцев), конвертер-векторизатор Фора-ЕС (для специа-
лизированного векторного процессора СПЕС, Институт прикладной матема-
тики АН СССР), векторизующий ПЛ/1-компилятор ИПК АН СССР (для ма-
шин Cray, Институт проблем кибернетики АН СССР) и др.
Из современных разработок рекламируется система ОРС (Открытая Распа-
раллеливающая
Система, Open Parallelizing System Group; Ростовский госу-
дарственный университет,
http://ops.rsu.ru
) - программная инструментальная
система, ориентированная на разработку распараллеливающих компилято-
ров, оптимизирующих компиляторов с параллельных языков, систем полуав-
томатического распараллеливания (так система позиционируется разработ-
чиками). OPC базируется на интерактивном характере распараллеливания
(разработана мощная система визуализации), использует различные графо-
вые модели программ, эквивалентные преобразования выражений, одномер-
ных циклов и гнезд циклов.
При ручном
анализе и преобразовании циклов используют наработанные
эмпирические методы, часть из них описана ниже.
Приведем пример программирования в технологии MPI (подробнее см.
подраздел 4.1), согласно MPI все процессоры выполняют одинаковый испол-
няемый код, а необходимые каждой параллельной ветви действия определя-
ются использованием условных операторов; один из процессоров (обычно
нулевой) является управляющим, остальные - рабочими.
Задача
заключается в суммировании
N
чисел, последовательно располо-
женных в массиве
A[ ]
, число процессоров равно
N_P (
диапазон
0 ÷N_P-1)
;
предполагается, что каждый процессзнаетсобственный номер (переменная
I_AM
):
*
В.А.Евстигнеев, И.Л.Мирзуитова. Анализ циклов: выбор кандидатов на распараллели-
вание. // Препринт. Российская академия наук Сибирское отделение Институт систем
информатики им. А. П. Ершова. –Новосибирск, 1999, -41 c.
                                         - 79 -


D-система, Polaris и др., (*). Основой для решений о распараллеливании яв-
ляется граф зависимостей по данным (строится по исходному тексту про-
граммы), в некоторых случаях используется дополнительная информация о
глубине зависимости для гнезда циклов или векторов направлений зависимо-
сти. Исследование графа выявляет как области нераспараллеливания или по-
следовательного исполнения, так и структуру таких областей. Например,
изучение контуров зависимости на предмет однородности дуг контура может
показать, что контур может быть разрушен. Здесь возможно применение пре-
образований типа переименования переменных.
   В нашей стране также разрабатывались системы подобного типа - напр.,
cистема программирования для ПС-3000 для МВК ПС-3000 (включает язык
программирования Фортран’77ВП, являющийся расширением стандарта For-
tran’77 средствами организации векторных и параллельных вычислений),
Система М10 (М.А.Карцев), конвертер-векторизатор Фора-ЕС (для специа-
лизированного векторного процессора СПЕС, Институт прикладной матема-
тики АН СССР), векторизующий ПЛ/1-компилятор ИПК АН СССР (для ма-
шин Cray, Институт проблем кибернетики АН СССР) и др.
   Из современных разработок рекламируется система ОРС (Открытая Распа-
раллеливающая Система, Open Parallelizing System Group; Ростовский госу-
дарственный университет, http://ops.rsu.ru) - программная инструментальная
система, ориентированная на разработку распараллеливающих компилято-
ров, оптимизирующих компиляторов с параллельных языков, систем полуав-
томатического распараллеливания (так система позиционируется разработ-
чиками). OPC базируется на интерактивном характере распараллеливания
(разработана мощная система визуализации), использует различные графо-
вые модели программ, эквивалентные преобразования выражений, одномер-
ных циклов и гнезд циклов.
   При ручном анализе и преобразовании циклов используют наработанные
эмпирические методы, часть из них описана ниже.
   Приведем пример программирования в технологии MPI (подробнее см.
подраздел 4.1), согласно MPI все процессоры выполняют одинаковый испол-
няемый код, а необходимые каждой параллельной ветви действия определя-
ются использованием условных операторов; один из процессоров (обычно
нулевой) является управляющим, остальные - рабочими.
   Задача заключается в суммировании N чисел, последовательно располо-
женных в массиве A[ ], число процессоров равно N_P (диапазон 0 ÷ N_P-1);
предполагается, что каждый процесс ‘знает’ собственный номер (переменная
I_AM):


*
    В.А.Евстигнеев, И.Л.Мирзуитова. Анализ циклов: выбор кандидатов на распараллели-
    вание. // Препринт. Российская академия наук Сибирское отделение Институт систем
    информатики им. А. П. Ершова. –Новосибирск, 1999, -41 c.