appdeSDr (1158395)
Текст из файла
11
Институт прикладной математики им. М.В.Келдыша
Российская Академия наук
Развитая система разработки параллельных программ
(APPDE)
Системный дизайн
1999
Оглавление
1 Цели системы 3
1.1 Простота разработки параллельных программ 3
1.2 Мобильность на компьютерах с различной архитектурой 3
1.3 Повторное использование программ 4
1.4 Высокая эффективность выполнения программы. 4
2 Состав и функции системы 4
3 Подход и принципы реализации системы 6
3.1 Языки 6
3.2 Компиляторы 7
3.3 Библиотека поддержки Lib-DVM 8
3.4 DVM-отладчик 8
3.5 Анализатор производительности 9
3.6 Предсказатель выполнения DVM-программы 9
4 Общая структура и организация системы 9
Данная система предназначается для разработки переносимых и эффективных параллельных программ вычислительного характера для компьютеров с различной архитектурой.
1Цели системы
Основные цели системы:
-
Простота разработки параллельных программ.
-
Мобильность среди различных архитектур ЭВМ (последовательных, кластера рабочих станций, MPP).
-
Повторное использование (композиция параллельных приложений из нескольких стандартных модулей).
-
Высокая эффективность выполнения программы.
1.1Простота разработки параллельных программ
Языки программирования (Norma, Fortran DVM, C-DVM) обеспечивают:
-
глобальное пространство имен;
-
программирование в терминах поведения системы в целом (в отличие от программы, пользующейся передачей сообщений и определяемой в терминах поведения отдельных параллельных задач);
-
программирование без низкоуровневой детализации взаимодействия и синхронизации задач;
-
использование одного варианта программы для последовательного и для параллельного выполнения.
Для отладки программ на рабочей станции предоставляются следующие возможности:
-
отладка DVM-программы как обычной последовательной программы;
-
автоматическая проверка спецификаций параллелизма;
-
псевдо-параллельное выполнение программы в режиме сравнения промежуточных результатов трассировки с результатами эталонной трассировки (полученной в результате последовательного выполнения программы);
-
накопление трассировочных данных и их просмотр;
-
предcказание характеристик производительности параллельного выполнения.
Для отладки программ на параллельном компьютере предоставляются следующие возможности:
-
сравнение промежуточных результатов трассировки с результатами эталонной трассировки;
-
накопление трассировочных данных и их просмотр;
-
получение характеристик производительности параллельного выполнения.
1.2Мобильность на компьютерах с различной архитектурой
Последовательные компьютеры:
Cпецификации параллелизма в языках Fortran-DVM и C-DVM "невидимы" для стандартных компиляторов с языков Си и Фортран 77.
Параллельные компьютеры:
-
схема компиляции:
Fortran DVM = > Fortran 77 + Lib-DVM
C-DVM = > C + Lib-DVM
Lib-DVM базируется на стандартных библиотеках передачи сообщений MPI или PVM.
-
автоматическая конвертация: Fortran DVM = > HPF или HPF2
1.3Повторное использование программ
-
DVM-программа может динамически настраиваться (без повторной компиляции) на параметры приложения (количество и размер массивов данных) и конфигурацию параллельного компьютера;
-
DVM-подпрограмма может динамически настраиваться на распределение фактических параметров и подмножество процессоров параллельной ЭВМ, на котором эта подпрограмма выполняется.
1.4Высокая эффективность выполнения программы.
Высокая эффективность DVM-программ достигается следующим образом:
-
Программист может точно специфицировать параллельное выполнение своей программы
-
Предоставляются средства для совмещения вычислений и обмена сообщениями в системах с распределенной памятью;
-
Предоставляются средства для балансировки загрузки.
2Состав и функции системы
Система состоит из следующих пакетов программ:
-
Компилятор Fortran-DVM;
-
Компилятор C-DVM;
-
Библиотека поддержки Lib-DVM;
-
DVM-отладчик;
-
Предсказатель выполнения DVM-программы на MPP и кластере рабочих станций;
-
Анализатор производительности параллельных программ;
-
NORMA компилятор.
Эти пакеты должны удовлетворять следующим требованиям:
-
Fortran-DVM компилятор должен поддерживать параллелизм данных и параллелизм задач, динамическое распределение памяти и динамическую балансировку загрузки. Реализация компилятора должна поддерживать расширенное подмножество HPF. Это подмножество должно включать все возможности Fortran 77, динамическое распределение данных (REALIGN, REDISTRIBUTE, DYNAMIC) и другие возможности HPF по согласованию Обеих Сторон. Программы, написанные на расширенном подмножестве HPF, могут компилироваться и выполняться в среде APPDE. Программы, написанные на языке Fortran-DVM, могут компилироваться и выполняться в стандартной среде Fortran 77 как обычные последовательные программы. Выходом компилятора Fortran-DVM является программа на языке Fortran 77 (SPMD модель), расширенная вызовами функций Lib-DVM или программа на языках HPF1 или HPF2.
-
C-DVM компилятор должен поддерживать параллелизм данных и функциональный параллелизм, динамическое распределение данных и динамическую балансировку загрузки. Программы, написанные на C-DVM, могут компилироваться и выполняться в стандартной среде Си. Выходом C-DVM компилятора является программа на языке ANSI Си (SPMD модель), расширенная вызовами функций Lib-DVM.
-
Библиотека Lib-DVM - это система поддержки выполнения Fortran-DVM и C-DVM программ. Функции Lib-DVM должны использовать две коммуникационные системы MPI, PVM и некоторые собственные библиотеки обмена сообщениями для различных компьютеров.
-
DVM отладчик используется для отладки DVM-программ (написанных на языках Fortran-DVM или C-DVM). Для отладки DVM программы используется следующий подход. На первой стадии программа отлаживается на рабочей станции как последовательная программа, используя обычные методы и средства отладки. На второй стадии программа выполняется на той же рабочей станции в специальном режиме проверки DVM указаний. На третьей стадии программа может быть выполнена на параллельном компьютере в специальном режиме, когда промежуточные результаты выполнения сравниваются с результатами эталонной трассировки (например, результатами последовательного выполнения).
-
Анализатор производительности параллельных программ определяет производительность выполнения параллельной программы. После завершения выполнения параллельной программы анализатор производительности предоставляет пользователю информацию о производительности в соответствии с его запросами с заданной степенью детализации. Информация о производительности включает времена выполнения, времена ожидания сообщений или синхронизации, число выполненных DVM-указаний.
-
Предсказатель выполнения - это набор средств для прогнозирования характеристик производительности DVM-программ на различных MPP и кластерах рабочих станций. Он позволяет получить характеристики DVM-программы, выполняющейся на рабочей станции, и использовать их для прогнозирования эффективности выполнения программы на кластерах рабочих станций и для NCI-MPP с заданными параметрами (конфигурацией, производительностью процессоров и коммуникационными каналами).
-
NORMA компилятор преобразует NORMA-программы в Fortran-DVM программы. NORMA - это непроцедурный язык, разработанный для численных алгоритмов решения задач математической физики с использованием различных методов. Основная идея этого языка состоит в использовании описания задачи в виде вычислительных формул, полученных прикладным специалистом в качестве входной информации для выполнения вычислений.
3Подход и принципы реализации системы
3.1Языки
Язык Norma
Norma это декларативный специализированный язык, созданный для спецификации численных сеточных методов решения задач математической физики, хотя область его применения представляется более широкой. Язык формализует математические спецификации, возникающие при дискретизации дифференциальных уравнкений. Таким образом Norma является языком очень высокого уровня и обеспечивает дружественный интерфейс с пользователем, поскольку использует хорошо знакомые ему понятия из прикладной области. Спецификация вычислительной задачи автоматически превращается в выполняемую программу синтезирующим транслятором с языка. Такой автоматический синтез программы гарантирует ее корректность.
Процесс программирования в этом случае не требует написания программы в том смысле, как это понимается при использовании обычных языков программирования. Поэтому такой подход можно назвать “программирование без программ”.
Заметим, что спецификация решения задачи в языке Norma задает только те правила (ограничения), которым должны удовлетворять значения переменных, и спецификации не имеют встроенного представления в пямяти и некоторых обычных элнментов программ (например, операторов управления). Важно отметить, что в спецификациях языка Norma нет излишних связей, которые обычно появляются при программировании, особенно на стадии оптимизации. Эти связи часто ограничивают возможности распараллеливания. С этой точки зрения язык Norma имеет еще одно преимущество: это язык с однократным присваиванием. Известно, что это очень важно для автоматического распараллеливания.
Язык 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Компиляторы
Norma компилятор
NORMA компилятор преобразует NORMA-программу в Fortran-DVM программу. Такая схема компиляции позволяет иметь общую модель выполнения параллельных программ, общие средства их отладки, анализа и предсказания производительности.
Norma компилятор состоит как из традиционных компонент (лексического анализатора, синтаксического анализатора, кодо-генератора и т.д.) так и имеет специальные компоненты для упорядочивания и распараллеливания вычислений.
Схему распараллеливания, которая используется в процессе трансляции с языка Norma, можно кратко описать следующим образом.
-
В результате анализа программы строится граф зависимости по данным.
-
Строится граф уровней параллелизма алгоритма, удовлетворяющий всем зависимостям и выражающий естественный (идеальный) параллелизм.
-
Этот граф отображается на целевую вычислительную систему с учетом модели ее архитектуры. При отображении учитываются модель памяти (NUMA или NORMA) и число процессоров. Выполняются различные оптимизации.
Компилятор Fortran-DVM
Характеристики
Тип файла документ
Документы такого типа открываются такими программами, как Microsoft Office Word на компьютерах Windows, Apple Pages на компьютерах Mac, Open Office - бесплатная альтернатива на различных платформах, в том числе Linux. Наиболее простым и современным решением будут Google документы, так как открываются онлайн без скачивания прямо в браузере на любой платформе. Существуют российские качественные аналоги, например от Яндекса.
Будьте внимательны на мобильных устройствах, так как там используются упрощённый функционал даже в официальном приложении от Microsoft, поэтому для просмотра скачивайте PDF-версию. А если нужно редактировать файл, то используйте оригинальный файл.
Файлы такого типа обычно разбиты на страницы, а текст может быть форматированным (жирный, курсив, выбор шрифта, таблицы и т.п.), а также в него можно добавлять изображения. Формат идеально подходит для рефератов, докладов и РПЗ курсовых проектов, которые необходимо распечатать. Кстати перед печатью также сохраняйте файл в PDF, так как принтер может начудить со шрифтами.















