Video

The consistent representation of Fortran programs in the PARFOR compiler at different levels of abstraction

Parallelizing compiler PARFOR as separate toolkit from automated parallelization system SAPFOR is designed to develop parallel programs in Fortran and C languages with implicit parallelism. The aim of the PARFOR compiler development is the automatic transformation of a program source code  to run on a computational cluster. Implicit parallel programming assumes the possibility to describe the properties of the source serial program to simplify  searching of the program necessary transformations.  The parallelization is performed in the DVMH model in Fortran-DVMH and C-DVMH languages correspondingly. The LLVM compiler system is used for the program analysis, and the transformations are based on the representation of programs in the form of an abstract syntax tree (AST). In this paper we  describe an approach that allows to consistently consider programs at two levels of abstraction:  source code level and low-level representation, using the low-level representation potential in relation to the  program analysis and saving a user-friendly view of the displayed information. The paper considers also the possibility of  transformed LLVM IR research to increase the accurasy of performed analysis. The main reasons for choosing LLVM as an instrumental base for the development of the compiler PARFOR are explained also in the paper.

The work was  funded  by RFBR (projects 16-07-01014, 17-01-00820, 18-01-00851) and program of Presidium of RAS No. 26 “The fundamental principles of development of algorithms and software for advanced highly productive computing”.

 

Presented by N.A. Kataev.


Show less
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.


Show less
The experience of DVM-system using for solution of applied tasks

DVM-system is intended for development of parallel programs of scientific and technical calculations in C-DVMH and Fortran-DVMH languages. These languages use a single parallel programming model (DVMH-model) and are an extension of the standard C and Fortran languages by parallelism specifications, implemented as compiler directives.  DVMH-model allows to create efficient parallel programs for heterogeneous computational clusters, which nodes use as computing devices not only universal multi-core processors but also can use attached accelerators (GPUs or Intel Xeon Phi coprocessors). The article describes the experience of DVM-system using for parallelization of various aplications. 

The work was funded by RFBR grants № 16-07-01014, 16-07-01067, 16-37-00266 and 17-01-00820.

 

Presented by V.A. Bakhtin.


Show less
New possibilities of automation system of parallel program development (DVM-system)

The following recently implemented capabilities of the DVM-system  are discussed  in the presentation:

  • new version of C-DVMH language and compiler;
  • extension of  C-DVM and Fortran-DVMH  possibilities to solve problems with irregular grids;
  • implementation of parallel I/O tools;
  • new features for functional debugging and analysis of parallel programs performance.

Examples of usage of these features on test and real applications will be demonstrated.

Presented by V.A. Bakhtin.


Show less
Mapping of graph problems on GPU architecture – theory and practice

Last time graphics accelerators (GPUs) GPU are increasingly being used in non-graphical computations. They’re needed because of  their relatively high performance and lower cost. As you know,  the problems on structured grids where the parallelism is easily determined are solved well  on GPUs. But there are problems that require more computing power and use non-structured grids. The examples of such tasks are: Single Shortest Source Path problem (SSSP) – the problem to  find the shortest paths from a given vertex to all the others in a weighted graph, MST (minimum spanning tree) – finding the minimum spanning forest in a graph, BFS (breadth first search) – breadth-first search in the graph, Community detection – finding closely related communities in a graph, and others. These tasks are very often used in various fields of research: a recognition of various objects, computer vision, analysis and building of networks (for example, telephone, electrical, computer, road, etc.), chemistry and biology, and in many other areas.

Presented by A.S. Kolganov.


Show less