DVM-system of parallel program development
Goals and structure
* October, 2000 *

DVM
system - home page

- last edited 18.06.02 -


Contents

1 Introduction
2 Goals of DVM-system development

2.1 C-DVM and Fortran DVM parallel program development
2.2 Program portability
2.3 Program performance
2.4 Reusability

3 The Content and Functions of DVM-system


1 Introduction

DVM-system developed in Keldysh Institute of Applied Mathematics of Russian Academy of Sciences allows to develop parallel programs in C-DVM and Fortran-DVM languages for different architecture computers and computer networks. The DVM name originates from two notions - Distributed Virtual Memory and Distributed Virtual Machine. The former reflects the global address space, and the latter reflects the use of virtual machines for the two-step mapping of data and computartions onto a real parallel computer.

Using C-DVM and Fortran-DVM languages a programmer deals with the only version of the program both for sequential and parallel execution. Besides algorithm description by means of usual C and Fortran 77 features the program contains rules for parallel execution of the algorithm. These rules are syntactically organized in such a manner that they are "transparent" for standard C and Fortran compilers and doesn't prevent DVM-program execution and debugging on workstations as usual sequential program.

Following features of parallel program execution specification is provided to a programmer:

The compiler translates C-DVM (Fortran-DVM) program in the program on standard C (Fortran) language, expanded by DVM-program runtime support system functions. Runtime system uses standard communication libraries (MPI, PVM, Router) for interprocessor communications.

The program debugging is performed as follows.

First, the program is debugged at a workstation as a usual sequential program using ordinary debugging tools. Then the program is executed at the same workstation using special mode to check the DVM-directives. The check allows to verify the correctness and fullness of the DVM-directives. At the next step the program may be executed on a parallel computer (or workstation, simulating the parallel computer) in the mode of comparison of its intermediate results with the reference ones obtained as a result of its sequential execution.

To debug the program on real parallel computer the trace accumulation tools are used.

Performance analysis tools allow a user to obtain information about main characteristics of the program performance (or its parts).

To facilitate performance debugging a special toolkit (predictor) is provided. The predictor allows simulating DVM-program execution on parallel computer or workstation cluster with given parameters (communication network topology, its throughput and processor efficiency).

DVM-system is used on UNIX and WINDOWS 95/NT workstations and personal computers. DVM-program experience on parallel computers (MBC-100, MBC-1000 and Convex SPP1000) and workstation clusters (SGI and SUN) proves their high performance and portability.

2 Goals of DVM-system development

The main goals of the DVM-system are follows:

2.1 C-DVM and Fortran DVM parallel program development

Using these languages the programmer deals with the only version of the program both for sequential and parallel execution. He is freed from necessity to represent his program as a set of interconnecting processes, but defines parallel program behavior in global name space (global address space).

Important advantage of DVM approach is that parallelism specifications (DVM-directives) are implemented as special comments and are "transparent" for standard compilers.

First, it simplifies new parallel language introduction, because a programmer knows, that his program can be executed without any changes in sequential mode on any computers.

Secondly, it allowed to provide following method of DVM-program debugging.

At first step, the program is debugged at a workstation as a usual sequential program using ordinary debugging tools. At the second step the program is executed at the same workstation using special mode to check DVM-directives. At the third step the program may be executed at parallel computer (or its model, for example, MPI-machine in Windows 95 or UNIX environment) in the special mode when intermediate results of parallel execution are compared with the reference ones (for example, the results of its sequential execution).

2.2 Program portability

For serial computers the portability is provided by DVM-directive "transparency" for standard C and Fortran 77 compilers.

C-DVM and Fortran DVM compilers translate DVM-directives in runtime support system (Lib-DVM) function calls. Lib-DVM is implemented in C and based on standard communication libraries MPI, Router and PVM. So runtime system is portable on any computers, where MPI and PVM are implemented.

DVM-program portability on parallel computers is provided by the implementation scheme above and computer-independent DVM-model. Moreover, Fortran-DVM program can be automatically converted in HPF1 or HPF2 programs.

2.3 Program performance

There are the following possibilities of DVM-program performance increasing:

2.4 Reusability

DVM-program dynamically customizes to application parameters (the number and size of arrays).

DVM-subprogram dynamically customizes to actual argument distribution and parallel computer processor subset.

3 The Content and Functions of DVM-system

DVM-system includes following software packages:

These packages perform the following functions: