Новости

DVM-система, созданная в ИПМ им. М.В.Келдыша РАН при активном участии аспирантов и студентов факультета ВМК МГУ им. М.В.Ломоносова, предназначена для разработки параллельных программ научно-технических расчетов на языках C-DVMH и Fortran-DVMH. Эти языки используют единую модель параллельного программирования (DVMH-модель) и являются расширением стандартных языков Си и Фортран спецификациями параллелизма, оформленными в виде директив компилятору. Поскольку директивы невидимы для стандартных компиляторов, программист может иметь одну программу и для последовательного, и для параллельного выполнения на ЭВМ разной архитектуры.

Компиляторы языков C-DVMH и Fortran-DVMH преобразуют входную программу в параллельную программу, использующую стандартные технологии программирования MPI, OpenMP и CUDA. В состав DVM-системы входят средства функциональной отладки и отладки эффективности DVMH-программ.

O системе
#pragma dvm region
{
  #pragma dvm parallel([i][j] on A[i][j]) reduction(max(eps))
  for (i = 1; i < L-1; i++)
    for (j = 1; j < M-1; j++)
    {
      float tmp = fabs (B[i][j] - A[i][j]);
      eps = Max(tmp, eps);
      A[i][j] = B[i][j];
    }

  #pragma dvm parallel([i][j] on A[i][j]) shadow_renew(A)
  for (i = 1; i < L-1; i++)
    for (j = 1; j < M-1; j++)
      B[i][j] = (A[i-1][j] + A[i][j-1] +
                 A[i][j+1] + A[i+1][j]) / 4.0f;
}
O системе
Ускорение Fortran-DVMH версии теста EP из пакета NAS NPB 3.3

DVMH-модель позволяет создавать эффективные параллельные программы (DVMH-программы) для гетерогенных вычислительных кластеров, в узлах которых в качестве вычислительных устройств наряду с универсальными многоядерными процессорами могут использоваться ускорители (графические процессоры или сопроцессоры Intel Xeon Phi). При этом отображенные на узел вычисления могут автоматически распределяться между вычислительными устройствами узла с учетом их производительности.

Производительность
Производительность

Изучите руководство пользователя

Что такое DVMH-модель, DVMH-язык и DVMH-программа?

Как начать использовать DVM-систему?

  • Описание языка

    Язык C-DVMH, C-DVMH компилятор, компиляция, выполнение и отладка DVMH-программ.

  • Руководство пользователя

    Язык Fortran-DVMH, Fortran-DVMH компилятор, компиляция, выполнение и отладка DVMH-программ.

Посмотрите примеры программ

Как просто и эффективно распараллелить методы решения системы линейных уравнений?

  • Распараллеливание алгоритма Якоби

    Первое знакомство с DVM-системой. Обзор основных конструкций языка DVMH: распределение данных (distribute, align), распределение вычислений (parallel), выполнение редукционных операций (reduction), обмен данными (shadow_renew), использование GPU (region, actual, get_actual).

Свяжитесь с нами

Получите ответы на интересующие вас вопросы, выскажите свои замечания и внесите предложения, чтобы бы могли сделать нашу систему лучше.