Solution of applied problems in the parallel programming system aspect
Modern supercomputers have a complex heterogeneous architecture, which can include in various combinations CPU, GPU, DSP, ASIC, PLD, etc. It is difficult to efficiently use all these hardware resources with the available software tools for developing parallel programs, therefore further development of automated high-level parallel programming systems is an actual task. Programming system Aspect is an experimental system of parallel programming developed at the Institute of Computational Mathematics and Mathematical Geophysics of the Siberian Branch of the Russian Academy of Sciences and designed to study new forms of representation of algorithms and methods for specifying control in a parallel programs. It is based on an asynchronous model of computation controlled by strict partial order and fragmented programming as a way of developing parallel programs. System Aspect consists of a translator from the Aspect language and the executive subsystem. The essence of the fragmented programming is to represent an algorithm and its implementing program as a set of data fragments and code fragments. In the course of execution, the fragmented structure of a program is kept. Each code fragment is supplied with a set of input data fragments (formal parameters) used to compute output data fragments. The substitution of data fragments as parameters into a code fragment is referred to as applying a code fragment to data fragments (the same code fragment may be applied to different data fragments). The code fragment with its input and output data fragments constitutes a computation fragment. On the set of computation fragments, a partial order (control scheme) is defined. The resulting program is created from such computation fragments. Aspect language for computations control was developed to implement fragmented programming on practice. In that language, code fragments and data fragments are defined in existing procedural programming language (currently only C++ is supported), while special constructs are used to define computation fragments and dependencies between them. The construction of control scheme is based on two key features: strict partial order and explicit support of massive control schemes. Computation fragments that do not have explicitly specified dependencies are considered independent and can be executed simultaneously. Fragmented algorithms for solving LU-matrix decomposition problem, estimating the mathematical expectations of additive func-tionals from the trajectories of diffusion processes problem, and the interaction of a short laser impulse with plasma by the "particle-in-cell" method were developed and implemented in the Aspect system. The results of experiments on the HP ProLiant DL580 G5 shared memory system (4 Intel Xeon X7350 processors, 16 cores, 256 GB RAM) showed that due to the locality of the data fragments and the efficient use of cache memory, fragmented programs allow achieving acceleration, close to linear, and provide good scalability. Experiments also showed that Aspect system does not introduce significant delays and does not require significant overhead for the execution of fragmented program. Fragmentation of the algorithm may require its significant modification, and, therefore, cannot be performed automatically. This is a price for the good properties of fragmented programs.
Keywords
система параллельного программирования Аспект, фрагментированное программирование, представление алгоритмов с высокой степенью непроцедурности, parallel programming system Aspect, technology of fragmented programming, representation of algorithms with high degree of nonproceduralityAuthors
Name | Organization | |
Arykov Sergey Borisovich | Institute of Computational Mathematics and Mathematical Geophysics of Siberian Branch of Russian Academy of Science; Novosibirsk State Technical University | arykov@sscc.ru |
References

Solution of applied problems in the parallel programming system aspect | Vestnik Tomskogo gosudarstvennogo universiteta. Upravlenie, vychislitelnaja tehnika i informatika – Tomsk State University Journal of Control and Computer Science. 2018. № 45. DOI: 10.17223/19988605/45/7