Документ взят из кэша поисковой машины. Адрес
оригинального документа
: http://sp.cs.msu.ru/dvm/dvmhtm1107/rus/dvmINTRr.html
Дата изменения: Mon Feb 13 12:59:34 2006 Дата индексирования: Mon Oct 1 22:23:02 2012 Кодировка: Windows-1251 |
DVM-система
разработки параллельных программ |
DVM система - домашняя страничка |
- дата последнего обновления 18.06.02 -
Оглавление
1 Введение
2 Цели
создания DVM-системы
2.1 Разработка программ на языках C-DVM и Fortran DVM
2.2 Мобильность программ
2.3 Эффективность выполнения программ
2.4 Повторное использование программ
DVM-система, созданная в Институте прикладной математики им. М.В.Келдыша РАН, позволяет разрабатывать на языках C-DVM и Fortran-DVM параллельные программы для ЭВМ различной архитектуры и сетей ЭВМ. Аббревиатура DVM соответствует двум понятиям: Distributed Virtual Memory и Distributed Virtual Machine. Первое отражает наличие единого адресного пространства. Второе отражает использование виртуальных машин для двухступенчатой схемы отображения данных и вычислений на реальную параллельную машину.
При использовании языков C-DVM и Fortran-DVM программист имеет только один вариант программы и для последовательного и для параллельного выполнения. Эта программа, помимо описания алгоритма обычными средствами языков Си или Фортран 77, содержит правила параллельного выполнения этого алгоритма. Эти правила оформляются синтаксически таким образом, что они являются 'невидимыми' для стандартных компиляторов с последовательных языков Си и Фортран и не препятствуют выполнению и отладке DVM-программы на рабочих станциях как обычной последовательной программы.
Программисту предоставляются следующие возможности спецификации параллельного выполнения программы:
Компилятор переводит программу на языке C-DVM (Fortran-DVM) в программу на стандартном языке Cи (Фортран), расширенную функциями системы поддержки выполнения DVM-программ, которая для организации межпроцессорного взаимодействия использует стандартные коммуникационные библиотеки (MPI, PVM, Router).
Отладка программ осуществляется следующим образом.
Сначала программа отлаживается на рабочей станции как обычная последовательная программа с использованием штатных средств отладки. Затем на той же рабочей станции программа пропускается в специальном режиме проверки DVM-указаний, что позволяет выявить их правильность и полноту. На следующем этапе программа может быть пропущена на параллельной машине (или рабочей станции, имитирующей параллельную машину) в режиме сравнения промежуточных результатов ее параллельного выполнения с эталонными результатами, полученными при ее последовательном выполнении.
Для отладки программы на реальной параллельной машине используются также средства накопления трассировки.
Средства анализа производительности позволяют пользователю получить информацию об основных характеристиках эффективности выполнения его программы (или ее частей).
Для облегчения отладки производительности служит специальный инструмент (предиктор), позволяющий на рабочей станции смоделировать выполнение DVM-программы на параллельной ЭВМ или кластере рабочих станций с заданными параметрами (топологии коммуникационной сети, ее пропускной способности, а также производительности процессоров).
DVM-система используется на рабочих станциях и персональных ЭВМ с операционными системами UNIX и WINDOWS 95/NT. Опыт выполнения DVM-программ на параллельных ЭВМ (МВС-100, МВС-1000 и Convex SPP1000) и кластерах рабочих станций (SGI и SUN) подтверждает их высокую эффективность и переносимость.
2.1 Разработка программ на языках C-DVM и Fortran DVM.
При использовании этих языков программист имеет только один вариант программы для последовательного и параллельного выполнения. Он освобождается от необходимости представлять свою программу в виде множества взаимодействующих процессов, а определяет поведение параллельной программы в глобальном пространстве имен (едином адресном пространстве).
Важным достоинством DVM-подхода является то, что спецификации параллелизма (DVM-указания) оформляются в виде специальных комментариев и остаются 'невидимыми' для стандартных компиляторов.
Во-первых, это упрощает внедрение новых параллельных языков, поскольку программист знает, что его программа без каких-либо изменений может выполняться в последовательном режиме на любых ЭВМ.
Во-вторых, это позволило предложить следующий метод поэтапной отладки DVM-программ.
На первом этапе программа отлаживается на рабочей станции как последовательная программа, используя обычные методы и средства отладки. На втором этапе программа выполняется на той же рабочей станции в специальном режиме проверки DVM-указаний. На третьем этапе программа может быть выполнена на параллельной машине (или ее модели, например MPI-машине в среде Windows95 или UNIX) в специальном режиме, когда промежуточные результаты параллельного выполнения сравниваются с эталонными результатами (например, результатами последовательного выполнения).
Среди последовательных ЭВМ мобильность DVM-программ обеспечивается 'прозрачностью' DVM-указаний для стандартных компиляторов с языков Си и Фортран 77.
Компиляторы с языков C-DVM и Fortran DVM преобразуют DVM-указания в вызовы функций единой системы поддержки Lib-DVM, которая реализована на языке Си и базируется на стандартных коммуникационных библиотеках MPI, Router и PVM. Поэтому система поддержки переносима на любые ЭВМ, для которых существует реализация MPI или PVM.
Мобильность DVM-программ на параллельных ЭВМ обеспечивается вышеуказанной схемой реализации и машинно-независимой DVM-моделью. Кроме того, программа на языке Fortran-DVM может автоматически конвертироваться в программы на языках HPF1 или HPF2.
2.3 Эффективность выполнения программ
Существуют следующие возможности повышения эффективности DVM-программ:
2.4 Повторное использование программ
DVM-программа динамически настраивается на параметры приложения (количество и размер массивов данных).
DVM-процедура динамически настраивается на распределение фактических параметров и подмножество процессоров параллельной ЭВМ.
DVM-система состоит из следующих компонентов:
Эти компоненты выполняют следующие функции: