appdeSDe (1158394), страница 2
Текст из файла (страница 2)
C-DVM compiler
The output of C-DVM compiler is C program (SPMD model) expanded by LIB-DVM function calls. A special debug compilation mode is provided.
3.3Lib-DVM
Runtime system for DVM-programs supports dynamic creation of arrays, dynamic mapping of array elements over processors, dynamic distribution of computations over processors, combining partial results of global operations obtained on different processors, loading elements of distributed arrays imported from other processors, input/output.
The system provides invocation of statistics gathering functions which are necessary for performance analysis of parallel programs, and debugger functions.
The system also supports tracing of its own functions and functions of communication libraries, that is powerful debugging tool for applied and system programmers.
LIB-DVM functions allow to use two communication libraries MPI and PVM.
3.4DVM-debugger
Two main debug modes are provided. Both modes require from the compiler to insert into a program debugger function calls in addition to LIB-DVM function calls to save values of used and modified variables.
The first mode is a mode of DVM-directives control. It is implemented by simulation of parallel execution of DVM-program on a single processor. Debugger functions are invoked directly from the executed program as well as from LIB-DVM.
The second mode is a mode of comparison of results of parallel execution with results of sequential execution. The DVM-program is executed in parallel on some processors and the values of used and modified variables are compared with reference results. For this debug mode to be applicable to real programs with large volumes of data, the facilities for flexible control of volume of accumulated reference data are provided to a user. To obtain reference values of variables DVM-program must be compiled in a special mode under which the only modification of source program is inserting debugger function calls. It allows to apply the ordinary debugging tools for sequential program to such program if it is necessary.
3.5Performance Analyser
Facilities of the perfomance analysis base on gathering of execution time of some parallel program constructs in processor memory. User can obtain the information concerned of following program (or its parts) execution characteristics:
-
execution time – astronomical time of the program execution;
-
effective time – predicted time of the program execution on a single processor;
-
parallelization efficiency coefficient – a ratio of effective time to the product of the number of processors by the execution time;
-
lost time – the product of the number of processors by the execution time, subtracted by the effective time;
-
components of the lost time (loss caused by execution of sequential parts at all processors; loss caused by imbalance in loading of processors; loss caused by interprocessor communication).
The performance analyzer consists of two subsystems. The first subsystem supports accumulation of parallel execution characteristics on each processor. This subsystem is invoked from LIB-DVM when a parallel program is executed. Moreover the C-DVM and Fortran DVM languages have facilities to describe program execution intervals for which the user wants to obtain performance characteristics. The compilers provide the invocation of statistics accumulation subsystem at the beginning and at the end of each such interval. The data gathered on each processor is written to a file when program terminates.
Second subsystem, running on a workstation, processes the information gathered on a parallel computer and outputs performance characteristics requested by user.
3.6Predictor of DVM-program execution
Performance prediction is implemented by processing of trace information gathered by LIB-DVM system during DVM-program execution on a single workstation, and simulating a parallel execution of the DVM-program on workstation cluster or NCI-Cluster with given parameters.
4General Structure and Organization of the System
General structure of Advanced Parallel Programming Developing Environment is presented below.
C-DVM compiler
Norma
compiler
Fortran DVM
compiler
Parallel Program
Performance
Analyzer
LIB-DVM
library
DVM
debugger
Predictor of
DVM-program
execution
Parallel program processing are presented below.
C program
C program
C program
Fortran-program
Fortran-program
Fortran-program
DVM-debugger
LIB-DVM
LIB-DVM
DVM-debugger
LIB-DVM
LIB-DVM
DVM-debugger
DVM-debugger















