appdeSDr (1158395), страница 2
Текст из файла (страница 2)
Выходом компилятора 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.4DVM-отладчик
Предоставляются два основных метода отладки. Оба метода требуют от компилятора в дополнение к вызовам функций Lib-DVM вставлять в программу вызовы функций отладчика для запоминания значений используемых и модифицируемых переменных.
Первый метод - метод динамического контроля DVM-указаний. Он основан на эммуляции параллельного выполнения DVM-программы на одном процессоре. Функции отладчика вызываются непосредственно из выполняемой программы, а также из Lib-DVM.
Второй метод - это метод сравнения результатов выполнения программы в последовательном и параллельном режимах. DVM-программа выполняется параллельно на нескольких процессорах, и значения используемых и модифицируемых переменных сравниваются с эталонными значениями. Для того чтобы этот метод можно было применять к реальным программам с большими объемами данных, пользователю предоставляются средства гибкого управления объемом накапливаемых эталонных данных. Для получения эталонных значений DVM-программа должна быть скомпилирована в специальном режиме, в котором единственным изменением исходной программы является вставка в нее вызовов функций отладчика. Это позволяет применять к этой программе при необходимости обычные средства отладки для последовательных программ.
3.5Анализатор производительности
Средства анализа производительности базируются на накоплении времен выполнения определенных конструкций параллельной программы. Пользователь может получить следующие характеристики выполнения программы (или ее частей):
-
время выполнения - астрономическое время выполнения параллельной программы;
-
полезное время - прогнозируемое время выполнения программы на одном процессоре;
-
коэффициент эффективности распараллеливания - отношение полезного времени к произведению числа процессоров на время выполнения;
-
потерянное время - разница между произведением числа процессоров на время выполнения и полезным временем;
-
составляющие части потерянного времени (потери из-за выполнения последовательных участков на всех процессорах, из-за разбалансировки загрузки процессоров, из-за межпроцессорных обменов).
Анализатор производительности состоит из двух подсистем - подсистемы сбора статистики и подсистемы ее обработки. Первая подсистема обеспечивает сбор характеристик выполнения параллельной программы на каждом процессоре. Обращения к этой подсистеме происходит из Lib-DVM во время выполнения параллельной программы. Кроме того, в языках C-DVM и Fortran DVM предусмотрены средства описания интервалов выполнения программы, для которых пользователь хочет получить характеристики эффективности. Компиляторы обеспечивают обращения к подсистеме сбора статистики в начале и в конце выполнения каждого такого интервала. Собранная на каждом процессоре информация записывается в файл по завершению выполнения программы.
Вторая подсистема обеспечивает на рабочей станции обработку информации, собранной на параллельной машине, и выдачу заданных пользователем характеристик эффективности.
3.6Предсказатель выполнения DVM-программы
Предсказание производительности реализуется посредством обработки трассировочной информации, накопленной системой Lib-DVM во время выполнения DVM-программы на рабочей станции и моделировании параллельного выполнения программы на кластере рабочих станций или различных MPP с заданными параметрами.
4Общая структура и организация системы
Общая структура Развитой Системы Разработки Параллельных Программ представлена ниже.
C-DVM компилятор
Norma
компилятор
Fortran DVM
компилятор
Библиотека
LIB-DVM
DVM
отладчик
Анализатор
производительности DVM-программ
Предсказатель
производительности DVM-программ
Обработка параллельной программы представлена ниже.
C программа
Cпрограмма
C программа
Fortran
программа
Fortran
программа
Fortran
программа
DVM отладчик
LIB-DVM
LIB-DVM
DVM отладчик
LIB-DVM
LIB-DVM
DVM отладчик
DVM отладчик















