News

DVM-system was developed in Keldysh Institute of Applied Mathematics, Russian Academy of Sciences, with the active participation of graduate students and students of Faculty of Computational Mathematics and Cybernetics of Lomonosov Moscow State University. It is designed to create parallel programs of scientific-technical calculations in C-DVMH and Fortran-DVMH languages. These languages use the same model of parallel programming (DVMH-model) and are the extensions of standard C and Fortran languages by parallelism specifications, implemented as compiler directives. The directives are invisible to standard compilers, so a programmer can have one program for sequential and for parallel execution on computers of different architectures.

C-DVMH and Fortran-DVMH compilers convert the source program into a parallel program using standard programming technologies MPI, OpenMP and CUDA. DVM-system includes the tools of functional debugging and performance debugging of DVMH-programs.

About
#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;
}
About
Execution performance of EP benchmark from NAS NBP 3.3

DVMH-model allows to create efficient parallel programs (DVMH-programs) for heterogeneous computational clusters, which nodes use as computing devices not only universal multi-core processors but also can use attached accelerators (GPUs or Intel Xeon Phi coprocessors). In last case computations mapped to the node can be automatically distributed between the computing devices of the node taking into account their performance.

Performance
Performance

Study getting started guide

What is DVMH-model, DVMH-language and DVMH-program?

How to start using DVM-system?

  • Language description

    C-DVMH language, C-DVMH compiler, compilation, execution and debugging of DVMH programs.

  • User guide

    Fortran DVMH langauge, Fortran DVMH compiler, compilation, execution and debugging of DVMH programs.

See examples of programs

How to simply and efficiently parallelize methods for solving systems of linear equations?

  • Parallelization of Jacobi algorithm

    The first acquaintance with DVM system. Overview of the main DVMH language directives: distribution of data (distribute, align), distribution of computations over these data (parallel), execution of reduction operations (reduction) and communications (shadow_renew), GPU usage (region, actual, get_actual).

Contact us

Get answers to your questions, give us your comments and suggestions and we will improve our system.