APPDE_sdes (1158453)
Текст из файла
The Advanced Parallel Programming Developing Environment (APPDE)
System design
Advanced Parallel Programming Developing Environment is designed to support development of portable and efficient parallel computational applications for different architecture computers.
-
1. Requirements to System
The main requirements to APPDE are follows:
-
Simplicity of parallel program development.
-
Portability of parallel program onto different architecture computers (serial, workstation cluster, MPP).
-
Reusability (composition of parallel applications from standard parallel modules).
-
High efficiency of program execution
1.1. Simplicity of parallel program development
The programming languages (Norma, Fortran DVM, C-DVM) provide:
-
global name space
-
programming in terms of the system behavior as a whole (in contrast of message passing program which is defined in terms of behaviors of individual parallel tasks)
-
programming without low level details of communication and synchronization
-
using the only version of the program both for sequential and parallel execution
The following possibilities of debugging on a workstation are provided:
-
debugging of DVM-program as usual sequential program
-
automatic checking of parallelism specifications
-
pseudo-parallel execution with comparison of intermediate results with reference results (the results of sequential execution)
-
trace data accumulation and browsing
-
prediction of performance characteristics of parallel execution
The following possibilities of debugging on parallel computer are provided:
-
comparison of intermediate results with reference results
-
trace data accumulation and browsing
-
browsing of performance characteristics of parallel execution
1.2. Portability onto different architecture computers
Serial computers: the parallelism specifications in Fortran DVM and C-DVM languages are transparent for standard C and Fortran compilers.
Parallel computers:
a) schema of compiling:
Fortran DVM = > Fortran 77 + Lib-DVM
C-DVM = > C + Lib-DVM
Lib-DVM library bases on communication libraries MPI or PVM or NCI-MPP.
b) automatic transformation: Fortran DVM = > HPF or HPF2
1.3. Reusability
-
DVM-program can be dynamically (without recompilation) customized to application parameters (the number and size of arrays) and parallel computer configuration
-
DVM-subprogram can be dynamically customized to distributed actual arguments and processor subset of parallel computer, where the subprogram is running
1.4. High efficiency of program execution
High efficiency of program execution is achieved in the following way:
-
A programmer has a possibility to specify parallel execution of his program exactly
-
The features for overlapping calculation and communication on distributed memory systems are provided
-
The means to support load balancing are provided
-
2. The Content and Functions of APPDE
APPDE includes following software packages:
-
Fortran-DVM compiler
-
C-DVM compiler
-
LIB-DVM library
-
DVM debugger
-
Predictor of DVM-program execution on MPP and workstation cluster
-
Parallel Program Performance Analyser (PPPA)
-
NORMA compiler
These packages must satisfy the following requirements:
-
Fortran-DVM compiler must support data parallelization and function parallelization, dynamic data mapping (REALIGN, REDISTRIBUTE, DYNAMIC), distributed virtual memory and dynamic load balancing. Programs written in Fortran DVM can be compiled and executed under the standard Fortran 77 environments as usual sequential programs. The output of Fortran-DVM compiler is Fortran 77 program (SPMD model) expanded by LIB-DVM function calls, or HPF1 program or HPF2 program.
-
C-DVM compiler must support data parallelization and function parallelization, dynamic data mapping, distributed virtual memory and dynamic load balancing. Programs written in C-DVM can be compiled and executed under the standard C environments. The output of C-DVM compiler is ANSI C program (SPMD model) expanded by LIB-DVM function calls.
-
LIB-DVM library is a run-time system to support execution of Fortran-DVM and C-DVM programs. LIB-DVM functions should use three communication systems - MPI, PVM and native message passing library for NCI-MPP.
-
DVM debugger is used for debugging DVM-program (written in Fortran-DVM or C-DVM languages). For debugging a DVM program the following approach is used. On the first stage the program is debugged on a workstation as a sequential program using ordinary debugging methods and tools. On the second stage the program is executed at the same workstation in the special mode of checking DVM-directives. On the third stage the program may be executed on a parallel computer in the special mode, when intermediate results of its execution are compared with reference results (for example, the results of sequential execution).
-
PPPA is a browser of parallel DVM-program performance. Upon parallel program termination, PPPA gives a performance information of specified detail degree in correspondence with the user’s requests. The performance information includes execution times, times of waiting for messages or synchronization, number of executed DVM-directives.
-
Predictor is a toolkit for prediction of performance characteristics of DVM-programs on MPP and workstation clusters. It allows to obtain characteristics of a DVM-program executed on a workstation or workstation cluster, and to use them to predict the program performance on workstation clusters and on NCI-MPP with given parameters (configuration and performance of processors and communication channels).
-
NORMA-compiler translates NORMA-programs to Fortran-DVM programs. Norma is a non-procedural language designed for numerical algorithms of solving mathematical physics problems using difference methods. The basic idea of this language is to use the description of the problem in the form of computational formulae obtained by applied specialist as input information to run computations.
-
3. Approach and Principles of System Implementation
Languages.
Norma language
Norma is declarative specialised language created to specify generic grid-based solutions of problems in applied mathematics but the area of its applications turned out to be wider. The NORMA language formalises the mathematical specifications resulting from discretization of continuous differential equations. Thus NORMA is the language of extremely high level and provides friendly interface with the user, because he can use the notions from the application domain that he knows very well. The specification of a computational task is turned into an executable program automatically by the translator synthesiser for this language. Automatic synthesis of the target program by the source NORMA program guarantees the correctness of the target program.
The process of programming in this case doesn’t need writing a program in the sense of traditional universal programming languages, therefore the approach “programming without programs” is based on the NORMA language application.
Note that the specification of a task solution in NORMA mentions only those rules (constraints) which must be met by the values of the variables and besides specification has no embedded memory representations and few of usual elements of programs (e.g., no control statements). It is important to note that there are no extra links in the NORMA specification though they are usually imposed in programming especially at the stage of algorithm optimisation. These links often limit the possibilities of parallelising. From this point of view the NORMA language has one more advantage: it is the language with single assignment. This fact is known to be very important for automatic parallelising.
Fortran DVM language
DVM-directives in Fortran DVM program appear as special comments.
The language includes the following main features for parallelism description:
-
distribution of array elements over processors;
-
distribution of calculations over processors;
-
organization of efficient access to remote data (located on other processors) with high level array-based specifications;
-
organization of efficient execution of global operations with data located on different processors (for example, accumulation of the values of distributed array elements).
To simplify conversion of Fortran DVM program to the program in HPF1 or HPF2 languages, Fortran DVM directives are based on HPF directives. Fortran DVM includes DVM-HPF-directives (directives of HPF1 and HPF2) and additional DVM-directives, used to improve program performance. Fortran DVM data mapping directives are a subset of corresponding ones in HPF2.
C-DVM language
DVM-directives appear in C-DVM program as parameters of a special macro DVM(dvmdir) ignored in the sequential program (where it is replaced by an empty string).
The language includes the following main features for parallelism description:
-
distribution of array elements over processors;
-
distribution of calculations over processors;
-
organization of efficient access to remote data (located on other processors) with high level array-based specification;
-
organization of efficient execution of global operations with data located on different processors.
Compilers
Norma compiler
Norma compiler converts a Norma-program to the program in Fortran DVM. Such compiling scheme allows to have common model of parallel program execution, common tools for debugging, performance analysis and performance prediction.
Norma compiler consists of as traditional components (lexical analyzer, syntax analyzer, code generator etc.), as specific components for computation order determination and parallelising.
The scheme for parallelising used during a NORMA translation is briefly as follows.
1) A graph of data dependencies is built after program analysis.
2) A level-parallel graph of the algorithm is constructed to satisfy all dependencies and reveal natural (ideal) parallelism.
3) That graph is projected onto the architectural model of the target computer system. In constructing a projection, the memory model (NUMA or NORMA), the number of the processors, and various component bandwidth factors are taken into consideration. Different optimizations are performed, of various kinds to attempt to solve performance problems related to the granularity of parallelism, load balancing on all available processors, and minimizing either memory size or access times or both. In our project this projection will be oriented on a facility of target language Fortran DVM.
Fortran DVM compiler
The output of Fortran-DVM compiler is a Fortran 77 program (SPMD model) expanded by LIB-DVM function calls, or a program in HPF1 or HPF2. A special debug compilation mode is provided.
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.
Lib-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.
Характеристики
Тип файла документ
Документы такого типа открываются такими программами, как Microsoft Office Word на компьютерах Windows, Apple Pages на компьютерах Mac, Open Office - бесплатная альтернатива на различных платформах, в том числе Linux. Наиболее простым и современным решением будут Google документы, так как открываются онлайн без скачивания прямо в браузере на любой платформе. Существуют российские качественные аналоги, например от Яндекса.
Будьте внимательны на мобильных устройствах, так как там используются упрощённый функционал даже в официальном приложении от Microsoft, поэтому для просмотра скачивайте PDF-версию. А если нужно редактировать файл, то используйте оригинальный файл.
Файлы такого типа обычно разбиты на страницы, а текст может быть форматированным (жирный, курсив, выбор шрифта, таблицы и т.п.), а также в него можно добавлять изображения. Формат идеально подходит для рефератов, докладов и РПЗ курсовых проектов, которые необходимо распечатать. Кстати перед печатью также сохраняйте файл в PDF, так как принтер может начудить со шрифтами.















