Parallel Computer Programming
New generation of integrated program tools for portable parallel program development on NPP.
Tech Area / Field
- INF-SOF/Software/Information and Communications
8 Project completed
Senior Project Manager
Komarkov D A
VNIIEF, Russia, N. Novgorod reg., Sarov
- Keldysh Institute of Applied Mathematics, Russia, Moscow\nVNIITF, Russia, Chelyabinsk reg., Snezhinsk\nUral Branch of RAS / Institute of Mathematics and Mechanics, Russia, Sverdlovsk reg., Ekaterinburg
- Transtech Parallel Systems Ltd., UK, Bucks, High Wycombe\nMeiko Ltd., UK, Bristol\nCEA / DRN / DMT/CEN Saclay, France, Saclay\nInstitut National de Recherche en Informatique et en Automatique (INRIA), France, Rocquencourt
Project summaryThe current trend of improving performance of computers is to design multi-processor systems with distributed memory. There is a significant number of such projects world-wide which aim at achieving a teraFLOPS performance by the end of the decade. All of the above systems are distributed memory multiprocessors with thousands of processing elements. The application software engineering for such distributed systems presents a considerable challenge.
The engineering of parallel applications require an appropriate method of computation to be chosen or devised. To attain the desired performance the usual path from algorithm specification to the actual program in a certain programming language has to be repeated, which in the case of parallel computers is considerably more difficult.
The difficulties emerging in parallel applications engineering are aggravated by the absence of the collection of parallel algorithms and programs upon which the programmer can rely. In this connection the advantage should be taken of the tremendous collection of sequential programs and algorithms in traditional programming languages.
The programs developed in programming languages available for distributed systems present a serious problem in porting them not only to a different architecture (sequential, vector-pipeline or shared-memory multiprocessor) but also to a similar architecture with a different configuration. Modular design of parallel programs and the accumulation of conventional parallel programs and modules are the problems to be considered and solved.
Finally the absence of adequate methods and tools for debugging and monitoring of concurrent programs should be noted as well as the absence of accessible instrumental systems supporting the large scale personnel training in concurrency methods.
All these problems are to be solved within the scope of the proposed project by developing of corresponding integrated program tools.
Design of system software for massively parallel computers is intended to be conducted along the following interdependent directions based on:
• concurrent programming languages for distributed systems (based on communication by message-passing);
• sequential programming languages, with annotations of the mapping of data (and therefore the corresponding computation) upon processors;
• non-procedural languages (specification languages).
Among the languages of the first group is Fortran GNS based on the abstract GENESIS-machine concept. According to this concept the user task is considered as a set of subtasks, which are dynamically created on the appointed processors of the distributed system and communicate with each other by message-passing in one of the three modes: synchronous, asynchronous and no-wait.
The second direction is based on using Fortran DVM language which is an extension on Fortran 77. It enables the user to first engineer a conventional sequential program and then to transform it into a parallel one by providing the mapping between variables and processors.
The third direction is represented by non-procedural language Norma which is designed for specifying numerical algorithms of solving mathematical physics problems with difference methods. The main idea of the Norma language implies that the specification of the solution obtained from the application expert in the form of computational formulae is used directly as input into the system. Therefore the Norma language enables application programmer to specify the problem in his conventional language. It is the job of the compiler from Norma. to set up the computational process for particular architecture.
Another research direction within the scope of the proposed project is the design of methods and tools for debugging and monitoring of concurrent programs as well as the methods and tools for teaching concurrent programming.
Debugging and monitoring tools should be capable of working in following three modes:
• parallel execution on parallel system;
• pseudo-parallel execution on host machine based on the trace from the execution on parallel system;
• simulation on host machine.
Debugging tools should enable identity of repetitive executions of the program, i.e. avoid non-determinate behavior.
Debugging tools on the host machine should enable stepwise transformation of sequential program into a parallel one.
Parallel programming environments should be developed for conventional personal computers to make training in concurrency available for broad groups of professionals and students.
The International Science and Technology Center (ISTC) is an intergovernmental organization connecting scientists from Kazakhstan, Armenia, Tajikistan, Kyrgyzstan, and Georgia with their peers and research organizations in the EU, Japan, Republic of Korea, Norway and the United States.
ISTC facilitates international science projects and assists the global scientific and business community to source and engage with CIS and Georgian institutes that develop or possess an excellence of scientific know-how.