144
14.2.2. Система программирования DVM
Данная модель объединяет элементы моделей параллелизма по данным
и управлению. На этой модели основаны
языки параллельного
программирования
Fortran-
DVM и С
-DVM. DVM-
система разработки
параллельных программ разработана в Институте прикладной математики
им. М. В. Келдыша РАН.
Основные компоненты DVM
-
системы:
-
компиляторы с языков F
-
DVM и С
-DVM;
-
система поддержки выполнения параллельных программ;
-
отладчик параллельных программ;
-
анализатор производительности;
-
предсказатель производительности.
Принципы DV
M-
системы:
Модель выполнения параллельной программы должна иметь высокий
уровень реализации. На этом требовании основана рассматриваемая система.
Необходимо, чтобы спецификации системы были прозрачными для
рядовых компиляторов.
Программа на языках Fortran
-
DVM и С
-DVM
помимо описания алгоритма средствами традиционных языков Fortran 77 или
С, содержит спецификации параллелизма ‒
правила параллельного
выполнения этого алгоритма. Эти спецификации, которые по
-
другому
называют директивами, должны быть "невидимы"
для стандартных
компиляторов.
Языки параллельного программирования должны представлять собой
традиционные языки последовательного программирования, расширенные
спецификациями параллелизма. Эти языки должны предлагать программисту
модель программирования, близкую к модели выполнения.
Знание
программистом модели выполнения его программы и ее близость к модели
программирования
существенно
упрощает
для
него
анализ
145
производительности
программы
и
проведение
ее
модификаций,
направленных на достижение приемлемой эффективности.
Динамическая
реализация
модели
выполнения
параллельной
программы осуществляется системой поддержки выполнения
DVM-
программ. Это позволяет обеспечить динамическую настройку
DVM-
программ при их запуске на параметры приложения и конфигурацию
параллельного компьютера.
DVM-
программ исполняется на виртуальной многопроцессорной
системе, которую предоставляет базовое
системное программное
обеспечение и аппаратное обеспечение программе пользователя. Для
распределенной вычислительной системы примером является МРI
-
машина.
Виртуальная многопроцессорная система всегда
представляется в виде
многомерной решетки процессоров. Число процессоров виртуальной
многопроцессорной системы и конкретный
способ ее представления
задаются при запуске DVM
-
программы.
В момент запуска DVM
-
программа выполняется одновременно на всех
процессорах виртуальной многопроцессорной системы. В это время в DVM
-
программе существует единственный поток управления (единственная
ветвь).
В DVM
-
программе используются два уровня параллелизма. На верхнем
уровне в программе описывается какое
-
то число независимых ветвей (задач),
которые могут выполняться параллельно. Задачи DVM
-
это независимые по
данным крупные блоки программы. В конце ветвей допускается выполнение
глобальной редукционной операции. В рамках каждой ветви могут
дополнительно выделяться параллельные циклы. Никакой другой иерархии
параллелизма DVM не допускает, и описать в теле параллельного цикла еще
несколько независимых ветвей нельзя.
Поток управления разбивается на несколько независимых потоков. Это
происходит при входе в параллельную конструкцию. Потоки определяют
процесс вычислений на процессорах. При выходе из параллельной
146
конструкции потоки управления на всех процессорах
вновь становятся
одинаковыми.
Все переменные DVM
-
программы размножаются по всем процессорам.
В процессе вычислений для каждого процессора создается локальная копия
переменной. При работе с распределенными массивами их расположение
определяется специальной директивой.
Любой оператор присваивания DVM
-
программы выполняется в
соответствии с правилом
собственных вычислений, то есть оператор
обрабатывается процессором, на котором происходит обработка переменной
из левой части оператора.
Любая DVM
-
программа работает в соответствии с моделью SPMD на
всех выделенных ей
процессорах.
Do'stlaringiz bilan baham: