DVM система
Системный дизайн


Оглавление

1. Цели DVM-системы

1.1. Простота разработки параллельных программ
1.2. Мобильность на компьютерах с различной архитектурой
1.3. Повторное использование программ
1.4. Высокая эффективность выполнения программы.

2. Состав и функции DVM-системы

3. Подход и принципы реализации системы

3.1. Языки
3.2. Компиляторы
3.3. Библиотека поддержки Lib-DVM
3.4. DVM-отладчик
3.5. Анализатор производительности
3.6. Предсказатель выполнения DVM-программы


DVM-система предназначается для разработки переносимых и эффективных параллельных программ вычислительного характера для компьютеров с различной архитектурой.

1. Цели DVM-системы

Основные цели DVM-системы:

1.1. Простота разработки параллельных программ

Языки программирования (Fortran DVM, C-DVM) обеспечивают:

Для отладки программ на рабочей станции предоставляются следующие возможности:

Для отладки программ на параллельном компьютере предоставляются следующие возможности:

1.2. Мобильность на компьютерах с различной архитектурой

Последовательные ЭВМ: спецификации параллелизма в языках Fortran-DVM и C-DVM "невидимы" для стандартных компиляторов с языков Си и Фортран 77.

Параллельные компьютеры:

а) схема компиляции:

Fortran DVM = > Fortran 77 + Lib-DVM
C-DVM = > C + Lib-DVM

Lib-DVM базируется на библиотеках передачи сообщений MPI, PVM или MPP.

б) автоматическая конвертация: Fortran DVM = > HPF или HPF2

1.3. Повторное использование программ

1.4. Высокая эффективность выполнения программы.

Высокая эффективность DVM-программ достигается следующим образом:

2. Состав и функции DVM-системы

DVM-система состоит из следующих пакетов программ:

Эти пакеты должны удовлетворять следующим требованиям:

3. Подход и принципы реализации системы

3.1. Языки

Язык Fortran-DVM

DVM-указания вставляются в Fortran-DVM программу в виде специальных комментариев.

Язык включает следующие основные возможности спецификации параллельного выполнения программы:

Чтобы упростить преобразование Fortran-DVM программы в программу на HPF1 или HPF2, Fortran-DVM директивы базируются на HPF директивах. Fortran-DVM включает HPF-директивы (HPF1 и HPF2 директивы) и дополнительные директивы, предназначенные для повышения производительности выполнения программы. Директивы распределения памяти языка Fortran-DVM представляют собой подмножество соответствующих директив HPF2.

Язык C-DVM

DVM-указания оформляются как параметры специальной макрокоманды DVM(dvmdir), которая в последовательной программе игнорируется (заменяется на пустую последовательность символов).

Язык включает следующие основные возможности спецификации параллельного выполнения программы:

3.2. Компиляторы

Компилятор Fortran-DVM

Выходом компилятора Fortran-DVM является программа на языке Fortran 77 (SPMD модель), расширенная вызовами функций Lib-DVM или программа на язык HPF1 или HPF2. Обеспечивается специальный отладочный режим компиляции.

Компилятор C-DVM

Выходом компилятора C-DVM является программа на языке Си (SPMD модель), расширенная вызовами функций Lib-DVM. Обеспечивается специальный отладочный режим компиляции.

3.3. Библиотека поддержки Lib-DVM

Система поддержки DVM-программ обеспечивает динамическое создание массивов, динамическое распределение элементов массивов между процессорами, динамическое распределение вычислений между процессорами, объединение частичных результатов глобальных операций, полученных на различных процессорах, загрузку элементов распределенных массивов, импортируемых с других процессоров, ввод-вывод.

Система обеспечивает вызов функций накопления статистики, необходимых для анализа производительности параллельных программ, и функций отладчика.

Система поддерживает также трассировку своих собственных функций и функций коммуникационных библиотек, что является мощным средством отладки для прикладных и системных программистов.

Функции Lib-DVM позволяют использовать две стандартные коммуникационные библиотеки MPI, PVM и некоторые собственные библиотеки обмена сообщениями для различных компьютеров для обмена сообщениями.

3.4. DVM-отладчик

Предоставляются два основных метода отладки. Оба метода требуют от компилятора в дополнение к вызовам функций Lib-DVM вставлять в программу вызовы функций отладчика для запоминания значений используемых и модифицируемых переменных.

Первый метод - метод динамического контроля DVM-указаний. Он основан на эммуляции параллельного выполнения DVM-программы на одном процессоре. Функции отладчика вызываются непосредственно из выполняемой программы, а также из Lib-DVM.

Второй метод - это метод сравнения результатов выполнения программы в последовательном и параллельном режимах. DVM-программа выполняется параллельно на нескольких процессорах, и значения используемых и модифицируемых переменных сравниваются с эталонными значениями. Для того чтобы этот метод можно было применять к реальным программам с большими объемами данных, пользователю предоставляются средства гибкого управления объемом накапливаемых эталонных данных. Для получения эталонных значений DVM-программа должна быть скомпилирована в специальном режиме, в котором единственным изменением исходной программы является вставка в нее вызовов функций отладчика. Это позволяет применять к этой программе при необходимости обычные средства отладки для последовательных программ.

3.5. Анализатор производительности

Средства анализа производительности базируются на накоплении времен выполнения определенных конструкций параллельной программы. Пользователь может получить следующие характеристики выполнения программы (или ее частей):

Анализатор производительности состоит из двух подсистем - подсистемы сбора статистики и подсистемы ее обработки. Первая подсистема обеспечивает сбор характеристик выполнения параллельной программы на каждом процессоре. Обращения к этой подсистеме происходит из Lib-DVM во время выполнения параллельной программы. Кроме того, в языках C-DVM и Fortran-DVM предусмотрены средства описания интервалов выполнения программы, для которых пользователь хочет получить характеристики эффективности. Компиляторы обеспечивают обращения к подсистеме сбора статистики в начале и в конце выполнения каждого такого интервала. Собранная на каждом процессоре информация записывается в файл по завершению выполнения программы.

Вторая подсистема обеспечивает на рабочей станции обработку информации, собранной на параллельной машине, и выдачу заданных пользователем характеристик эффективности.

3.6. Предсказатель выполнения DVM-программы

Предсказание производительности реализуется посредством обработки трассировочной информации, накопленной системой Lib-DVM во время выполнения DVM-программы на одной или нескольких рабочих станциях и эммуляции параллельного выполнения программы на кластере рабочих станций или различных MPP с заданными параметрами.