DVM-система разработки параллельных программ
Содержание
Изучите руководство пользователя
Что такое DVMH-модель, DVMH-язык и DVMH-программа? Как начать использовать DVM-систему?
Посмотрите примеры программ
Как просто и эффективно распараллелить методы решения системы линейных уравнений?Введение
В DVM-системе программисту предоставляются следующие возможности спецификации параллельного выполнения программы:
- распределение элементов массива между процессорами;
- определение циклов, витки которых могут выполняться параллельно (витки циклов распределяются между процессорами в соответствии с распределением данных);
- спецификация параллельно выполняющихся секций программы (параллельных задач) и отображение их на процессоры;
- организация эффективного доступа к удаленным (расположенным на других процессорах) данным;
- организация эффективного выполнения редукционных операций — глобальных операций с расположенными на различных процессорах данными (таких, как их суммирование или нахождение их максимального или минимального значений);
- спецификация регионов – специальных конструкций языка, состоящих из последовательных участков и параллельных циклов, которые могут выполняться на ускорителях.
Компиляторы языков C-DVMH и Fortran-DVMH преобразуют входную программу в параллельную программу, использующую стандартные технологии программирования MPI, OpenMP и CUDA.
Отладка программ осуществляется следующим образом.
Сначала программа отлаживается как обычная последовательная программа с использованием штатных средств отладки. Затем программа пропускается в специальном режиме проверки спецификаций параллелизма, что позволяет выявить их правильность и полноту. На следующем этапе программа может быть пропущена в режиме сравнения промежуточных результатов ее параллельного выполнения с эталонными результатами, например, полученными при ее последовательном выполнении. Для отладки программ, использующих в качестве ускорителей графические процессоры, имеется режим сравнения результатов выполнения региона на ЦПУ и ГПУ. Для отладки программы могут также использоваться средства трассировки.
Средства анализа производительности позволяют пользователю получить информацию об основных характеристиках эффективности выполнения его программы (или ее частей).
Цели создания DVM-системы
- Простота разработки параллельных программ.
- Высокая эффективность выполнения программы на ЭВМ различной архитектуры.
Разработка программ на языках C-DVMH и Fortran-DVMH
При использовании этих языков программист освобождается от необходимости представлять свою программу в виде множества взаимодействующих процессов, а определяет поведение параллельной программы в глобальном пространстве имен (едином адресном пространстве).
Важным достоинством DVM-подхода является то, что спецификации параллелизма (DVMH-указания) оформляются в виде специальных комментариев и остаются “невидимыми” для стандартных компиляторов. Это упрощает внедрение новых параллельных языков, поскольку программист знает, что его программа без каких-либо изменений может выполняться в последовательном режиме на любых ЭВМ.
В состав DVM-системы входят развитые средства функциональной отладки и отладки эффективности DVMH-программ.
Высокая эффективность выполнения программы на ЭВМ различной архитектуры
Существуют следующие возможности повышения эффективности DVMH-программ:
- использование групповых асинхронных взаимодействий процессоров (одновременное выполнение нескольких редукций и обменов для нескольких массивов);
- возможность совмещения групповых асинхронных взаимодействий с вычислениями;
- автоматическое изменение порядка выполнения витков цикла для опережающих вычислений и рассылок данных;
- автоматическое распределение вычислений между всеми вычислительными устройствами узла кластера с учетом их производительности;
- автоматическая реорганизация данных для обеспечения эффективного доступа к памяти ГПУ.
Состав DVM-системы
DVM-система состоит из следующих компонент:
- Компилятор Fortran-DVMH
- Компилятор C-DVMH
- Библиотека LIB-DVMH
- Средства функциональной отладки DVMH-программ
- Средства отладки эффективности DVMH-программ
Эти компоненты выполняют следующие функции:
- Компилятор Fortran-DVMH превращает параллельную программу в программу на языке Фортран, использующую стандартные технологии программирования OpenMP и CUDA и расширенную вызовами функций Lib-DVMH.
- Компилятор C-DVMH превращает параллельную программу в программу на языке Си, использующую стандартные технологии программирования OpenMP и CUDA и расширенную вызовами функций Lib-DVMH.
- Библиотека Lib-DVMH — это система поддержки выполнения DVMH-программ (написанных на языках Fortran-DVMH или C-DVMH). Функции Lib-DVMH используют стандартную коммуникационную систему MPI и технологию CUDA.
- Средства функциональной отладки DVMH-программ обеспечивают выполнение программы на рабочей станции в специальном режиме проверки DVMH-указаний, а также выполнение программы на параллельном компьютере в специальном режиме, когда промежуточные результаты выполнения сравниваются с результатами эталонной трассировки (например, результатами последовательного выполнения). Кроме того, для отладки программ, использующих в качестве ускорителей графические процессоры, имеется режим сравнения результатов выполнения региона на ЦПУ и ГПУ.
- Анализатор производительности определяет характеристики эффективности выполнения параллельной программы. Он с заданной степенью детализации предоставляет пользователю информацию о производительности всей DVMH-программы и различных ее фрагментов.