144
14.2.2. Система программирования DVM
Данная модель объединяет элементы моделей параллелизма по данным
и управлению. На этой модели основаны
языки параллельного
программирования Fortran-DVM и С-DVM. DVM-система разработки
параллельных программ разработана в Институте прикладной математики
им. М. В. Келдыша РАН.
Основные компоненты DVM-системы:
- компиляторы с языков F-DVM и С-DVM;
- система поддержки выполнения параллельных программ;
- отладчик параллельных программ;
-
анализатор производительности;
-
предсказатель производительности.
Принципы DVM-системы:
Модель выполнения параллельной программы должна иметь высокий
уровень реализации. На этом требовании основана рассматриваемая система.
Необходимо, чтобы спецификации системы были прозрачными для
рядовых компиляторов. Программа на
языках 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: