ВУЗ:
Составители:
Рубрика:
- 98 -
обеспечить их эффективную обработку на векторном или параллельном вы-
числителе. Cинтаксис Fortran’90 помогает компилятору в большинстве
случаев избавиться от применения сложных алгоритмов определения парал-
лельных свойств циклических конструкций. Дальнейшее развитие околофор-
трановского направления привели к разработке Fortran’D (1992) и For-
tran’Vienna, HPF (1992), инструментального пакета анализа программ
ParaScope (Rice University), средства автоматического распараллеливания For-
tran-программ BERT 77, а также системы Forge (Applied Parallel Research,
Inc
., см. ниже).
Система программирования HPF – типичная система с императивным ука-
занием программиста компилятору, каким образом распределить данные
между процессорами (вычисления распределяются на основе распределения
данных – модель параллелизма по данным). Распределение данных управля-
ется директивами
ALIGN
(определение соответствия между взаимным распо-
ложением элементов нескольких массивов) и
DISTRIBUTE
(отображение
группы массивов на решетку процессоров), при этом допустимо ‘разрезание’
массива гиперплоскостями на располагающиеся на различных процессорах
блоки и динамическое (в ходе выполнения программы) перераспределение
(директивы
REALIGN
и
REDISTRIBUTE
). Параллелизм по вычислениям в HPF
реализован по следующим конструкциям языка – операции над секциями
массивов (параллелизм вычислений детерминируется ранее заданным рас-
пределением данных, при необходимости используется пересылка данных),
циклы
DO
и операции
FORAL
L (компилятором производится попытка обоб-
щить эти конструкции в виде операций над секциями массивов). Пример
HPF-программы приведен в Приложении 1б (исходно-последовательный ва-
риант программы – Приложение а). HPF-препроцессор Adaptor
(
http://www.gmd.de/SCAI/lab/adaptor/ adaptor_home.html
) распространяется (в уп-
рощенной версии) свободно; автоматическое построение HPF-приложений
осуществляется утилитой
gmdhpf
, поочередно вызывающей HPF
→
Fortran-
препроцессор (утилита
fadapt
), Fortran-компилятор и компоновщик.
Программирование на HPF (существуют варианты для C/C++) с точки зре-
ния программиста близко к идеалу (огромное поле для интеллектуальной
деятельности, нет необходимости выписывать громоздкие конструкции об-
мена данными в стиле MPI), однако эффективность создаваемых HPF-
компиляторами параллельных программ невысока (оставшаяся после указа-
ний программиста часть процесса распараллеливания компилятором автома-
тически распараллелена полностью быть не может). В целом HPF-подход
оказался чрезмерно романтичным (с точки зрения соответствия конструкци-
ям языка программирования поставленным целям).
Другой подход основан на модели параллелизма по управлению (work-
sharing, модель распределения работы) и формально заключатся в дополне-
нии языков программирования специальными конструкциями управления –
- 98 - обеспечить их эффективную обработку на векторном или параллельном вы- числителе. Cинтаксис Fortran’90 помогает компилятору в большинстве случаев избавиться от применения сложных алгоритмов определения парал- лельных свойств циклических конструкций. Дальнейшее развитие околофор- трановского направления привели к разработке Fortran’D (1992) и For- tran’Vienna, HPF (1992), инструментального пакета анализа программ ParaScope (Rice University), средства автоматического распараллеливания For- tran-программ BERT 77, а также системы Forge (Applied Parallel Research, Inc., см. ниже). Система программирования HPF – типичная система с императивным ука- занием программиста компилятору, каким образом распределить данные между процессорами (вычисления распределяются на основе распределения данных – модель параллелизма по данным). Распределение данных управля- ется директивами ALIGN (определение соответствия между взаимным распо- ложением элементов нескольких массивов) и DISTRIBUTE (отображение группы массивов на решетку процессоров), при этом допустимо ‘разрезание’ массива гиперплоскостями на располагающиеся на различных процессорах блоки и динамическое (в ходе выполнения программы) перераспределение (директивы REALIGN и REDISTRIBUTE). Параллелизм по вычислениям в HPF реализован по следующим конструкциям языка – операции над секциями массивов (параллелизм вычислений детерминируется ранее заданным рас- пределением данных, при необходимости используется пересылка данных), циклы DO и операции FORALL (компилятором производится попытка обоб- щить эти конструкции в виде операций над секциями массивов). Пример HPF-программы приведен в Приложении 1б (исходно-последовательный ва- риант программы – Приложение а). HPF-препроцессор Adaptor (http://www.gmd.de/SCAI/lab/adaptor/ adaptor_home.html) распространяется (в уп- рощенной версии) свободно; автоматическое построение HPF-приложений осуществляется утилитой gmdhpf, поочередно вызывающей HPF → Fortran- препроцессор (утилита fadapt), Fortran-компилятор и компоновщик. Программирование на HPF (существуют варианты для C/C++) с точки зре- ния программиста близко к идеалу (огромное поле для интеллектуальной деятельности, нет необходимости выписывать громоздкие конструкции об- мена данными в стиле MPI), однако эффективность создаваемых HPF- компиляторами параллельных программ невысока (оставшаяся после указа- ний программиста часть процесса распараллеливания компилятором автома- тически распараллелена полностью быть не может). В целом HPF-подход оказался чрезмерно романтичным (с точки зрения соответствия конструкци- ям языка программирования поставленным целям). Другой подход основан на модели параллелизма по управлению (work- sharing, модель распределения работы) и формально заключатся в дополне- нии языков программирования специальными конструкциями управления –
Страницы
- « первая
- ‹ предыдущая
- …
- 96
- 97
- 98
- 99
- 100
- …
- следующая ›
- последняя »