Автоматически распараллеливающий компилятор Фортран-программ на многоядерный кластер
, ,
1)ИПМ им. РАН, 125047, Москва, Миусская пл., *****@***ru
2)ИПМ им. РАН, 125047, Москва, Миусская пл., *****@***ru
3)ИПМ им. РАН, 125047, Москва, Миусская пл., *****@***ru
4)ИПМ им. РАН, 125047, Москва, Миусская пл., *****@***ru
Цель данной работы состояла в разработке автоматически распараллеливающего компилятора, который преобразует последовательную программу, написанную на языке Fortran 77 и снабженную специальными аннотациями, в параллельную программу для заданной ЭВМ. Аннотации необходимы для спецификации тех свойств последовательной программы, которые вызывают непреодолимые трудности при их автоматическом определении.
Для эффективной работы распараллеливающего компилятора исходная последовательная программа должна пройти этап автоматизированного исследования и преобразования ее программистом. Во время него программа дополняется необходимыми аннотациями.
Выходом компилятора является текст параллельной программы на языке Fortran DVM/OpenMP [1]. Компилятор состоит из двух блоков – блока анализа и блока отображения на многоядерный кластер (DVM/OpenMP эксперт), который можно рассматривать как дальнейшее развитие блока отображения на кластер (DVM эксперта [2]) путем обеспечения распараллеливания программы внутри каждого узла средствами OpenMP. К тому же был сделан шаг в сторону отказа от текстуальной инлайн-подстановки процедур, которая в некоторых случаях снижала эффективность параллельных программ [2].
Работа распараллеливающего компилятора основывается на подстановке процедур в тело головной процедуры на уровне дерева вычислений. Стоит отметить, что на данный момент не поддерживается такой механизм как клонирование процедур в случае, когда возникает необходимость в разной организации параллельных вычислений одной и той же процедуры, вызываемой в разных местах программы.
Экспериментальная версия компилятора ПАРФОР показала высокие результаты на реальных приложениях: тестах NAS BT, LU, SP, и разработанных в ИПМ им. РАН программах MHPDV и ZEBRA. Программа MHPDV осуществляет трехмерное моделирование сферического взрыва во внешнем магнитном поле. Программа ZEBRA производит расчет нейтронных полей атомного реактора в диффузионном приближении. Для тестирования тексты последовательных версий программ были получены из их DVM-версий путем удаления всех DVM-директив.
Работа поддержана Программами президиума РАН №14 и №15, грантом РФФИ № 10-07-00211 и Грантом Президента РФ МК-3324.2010.9.
Литература
1. , , Устюгов способ программирования DVM/OpenMP на SMP-кластерах // Труды Всероссийской научной конференции "Научный сервис в сети Интернет: технологии параллельного программирования". 2006.
2. , Крюков распараллеливание Фортран-программ. Отображение на кластер // Вестник Нижегородского университета им. . 2009, № 2.


