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-программы и различных ее фрагментов.