ВУЗ:
Составители:
Рубрика:
- 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.
Страницы
- « первая
- ‹ предыдущая
- …
- 77
- 78
- 79
- 80
- 81
- …
- следующая ›
- последняя »