News
-
2018 Ivannikov Memorial Workshop was held on May 3rd - 4th, 2018 in Armenia, Yerevan, Russian-Armenian University.
Presentations
LLVM Based Approach to Static Analysis of C Programs in SAPFOR
LLVM Based Approach to Static Analysis of C Programs in SAPFOR
Heterogeneous computational systems are becoming very popular nowadays. However, developing efficient parallel programs, that can exploit the potential parallelism of these systems, still remains difficult for most of application programmers. Program parallelization may require significant transformation of the original program. SAPFOR (System FOR Automated Parallelization) aims to simplify the development of parallel programs of scientific-technical calculations. It was designed to perform source-to-source transformation of a sequential program for execution on heterogeneous computational systems. This paper discusses the implementation of program analysis in SAPFOR. The presented approach relies on LLVM (Low Level Virtual Machine) capabilities to examine a program. SAPFOR explores the properties of low-level program representation to recognize related properties of the program in programming language. Some kind of IR-level transformations may be applied without any loss of analysis accuracy. Furthermore, these transformations allow us to increase the quality of program analysis.
Presented by N.A. Kataev.
-
Application of SAPFOR 3.0 system to semi-automatic OpenMP-based parallelization of the C version of BT benchmark from the NAS Parallel Benchmarks 3.3.1
Original verson of NAS NPB: https://www.nas.nasa.gov/publications/npb.html
NAS NPB in C langauge: Seo, S., Jo, G., Lee, J. Performance Characterization of the NAS Parallel Bench-marks in OpenCL // 2011 IEEE International Symposium on. Workload Characterization (IISWC), 2011. P. 137–148
-
The paper proposes an approach to implementation of program analysis in SAPFOR (System FOR Automated Parallelization). This is a software development suit that is focused on cost reduction of manual program parallelization. It was primarily designed to perform source-to-source transformation of a sequential program for execution on parallel architectures with distributed memory. LLVM (Low Level Virtual Machine) compiler infrastructure is used to examine a program. This paper focuses on establishing a correspondence between the properties of the program in the programming language and the properties of its low-level representation.
The reported study was funded by the Program of the Presidium of RAS 26 “Fundamental basis for creating algorithms and software for perspective ultrahigh-performance computing”.
-
The DVM and SAPFOR systems were primary designed to simplify the development of parallel programs of scientific-technical calculations. DVM includes CDVMH and Fortran-DVMH programming languages which are the extensions of standard C and Fortran languages by parallelism specifications. The DVMH programs can be efficiently executed on heterogeneous computational clusters with accelerators. SAPFOR is a software development suit that can be used to produce a parallel version of a sequential program in a semiautomatic way, according to DVMH model of the parallel programming. The paper considers the application of DVM and SAPFOR systems at all stages of the program parallelization on the example of mapping of 3D elastic waves simulation method on high-performance heterogeneous clusters with GPUs. SAPFOR enables us to investigate original sequential program. Then, Fortran-DVMH language is used to exploit parallelism. Tools for functional and performance debugging, that are part of the DVM system, allow to resolve errors in the parallel program and to improve its performance. The paper also compares the DVMH-based program with a program obtained after manual parallelization using MPI programming technology.
The reported study was funded by the program of the Presidium of RAS 26 “fundamental basis for creating algorithms and software for perspective ultrahigh-performance computing”.
-
Russian Supercomputing Days 2018 was held on Semptember 24th - 25th, 2018 in Russia, Moscow, hotel Holiday Inn Moscow - Sokolniki.
Presentations
Application of the LLVM Compiler Infrastructure to the Program Analysis in SAPFOR
Application of the LLVM Compiler Infrastructure to the Program Analysis in SAPFOR
The paper proposes an approach to implementation of program analysis in SAPFOR (System FOR Automated Parallelization). This is a software development suit that is focused on cost reduction of manual program parallelization. It was primarily designed to perform source-to-source transformation of a sequential program for execution on parallel architectures with distributed memory. LLVM (Low Level Virtual Machine) compiler infrastructure is used to examine a program. This paper focuses on establishing a correspondence between the properties of the program in the programming language and the properties of its low-level representation.
The reported study was funded by the Program of the Presidium of RAS 26 “Fundamental basis for creating algorithms and software for perspective ultrahigh-performance computing”.
Presented by N.A. Kataev.
Incremental parallelization of programs using DVM-system
Incremental parallelization of programs using DVM-system
The main difficulty of a parallel program development for the cluster is the need to make global decisions on the distribution of data and calculations, taking into account the properties of the entire program, and then perform painstaking work on its modifying and debugging. A large amount of code, multi-modularity, multifunctionality makes it difficult to make decisions on the coordinated distribution of data and calculations. The method of incremental or partial parallelization can be used to solve this problem. The idea of this method is not the whole program is parallelized, but its parts (areas of parallelization) – the additional instances of the required data are created in them, the distribution of this data and the corresponding calculations is performed. These areas can be built on the basis of the times obtained by the performance analyzer, which is the part of DVM-system.
Presented by V.A. Bakhtin.