News
Performance results for benchmarks from NAS NPB 3.3 is updated. These benchmarks has been parallelized using Fortran-DVMH language and were executed on graphics accelerators NVIDIA, on 6-cores processor Intel and on 60-cores Intel Xeon Phi.
Recent publications
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;
}
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.
PerformanceStudy 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.