DOI: https://doi.org/10.26089/NumMet.v20r321

Distribution of computations in hybrid computing systems when translating NORMA language programs

Authors

  • A.N. Andrianov
  • T.P. Baranova
  • A.B. Bugerya
  • K.N. Efimkin

Keywords:

parallel programming
programming automation
nonprocedural specifications
hybrid architectures
load balancing
NORMA language

Abstract

The methods of computational load distribution when translating programs from the nonprocedural (declarative) NORMA language into executable programs for various parallel architectures are discussed. Some brief characteristics of the NORMA language and the main features of the compiler for programs in NORMA language are given. The methods of automatic distribution of computational load when generating executable programs of the following types are described: OpenMP, NVIDIA CUDA, MPI+OpenMP, and MPI+OpenMP+NVIDIA CUDA. The problem of dynamic computational load balancing arising in the case of the heterogeneous computing environment MPI+OpenMP+NVIDIA CUDA is considered and a method of solving it is proposed. The results of practical application of the compiler for the programs in NORMA language for solving two different mathematical problems are given and the performance of the resulting executable programs is estimated for various parallel architectures.


Published

2019-06-20

Issue

Section

Section 1. Numerical methods and applications

Author Biographies

A.N. Andrianov

T.P. Baranova

A.B. Bugerya

K.N. Efimkin


References

  1. V. V. Voevodin, Mathematical Models and Methods in Parallel Processes (Nauka, Moscow, 1986) [in Russian].
  2. V. V. Voevodin and Vl. V. Voevodin, The Parallel Computing (BHV-Petersburg, St. Petersburg, 2002) [in Russian].
  3. OpenACC.
    http://openacc.org . Cited June 10, 2019.
  4. DVM-system. URL:
    http://dvm-system.org . Cited June 10, 2019.
  5. A. N. Andrianov, A. B. Bugerya, K. N. Efimkin, and I. B. Zadykhailo, Norma. Language Description. Draft , Preprint No. 120 (Keldysh Institute of Applied Mathematics, Moscow, 1995).
  6. J. R. McGraw, S. K. Skedzielewski, S. J. Allan, et al., Sisal: Streams and Iterations in a Single Assignment Language , Language Reference Manual, Version 1.2. (Lawrence Livermore Nat. Lab., Livermore, 1985).
  7. V. N. Kasyanov and A. P. Stasenko, “Sisal 3.2 Programming Language,” in Tools and Techniques of Program Construction (Ershov Institute of Informatics Systems, Novosibirsk, 2007), pp. 56-134.
  8. B. L. Chamberlain, S.-E. Choi, E. C. Lewis, et al., “ZPL: A Machine Independent Programming Language for Parallel Computers,” IEEE Trans. Softw. Eng. 26 (3), 197-211 (2000).
  9. I. B. Zadykhailo, “The Organization of a Cyclical Computing Process Using a Parametric Representation of Special Form,” Zh. Vychisl. Mat. Mat. Fiz. 3 (2), 337-357 (1963) [USSR Comput. Math. Math. Phys. 3 (2), 442-468 (1963)].
  10. A. N. Andrianov, K. N. Efimkin, and I. B. Zadykhailo, “Nonprocedural Language for Mathematical Physics,” Programmirovanie, No. 2, 80-95 (1991) [Program. Comput. Software 17 (2), 10-22 (1992)].
  11. I. B. Zadykhailo and K. N. Efimkin, “Substantive Notation and New Generation Languages,” Inform. Tekhnol. Vychisl. Sistemy, No. 2, 46-58 (1996).
  12. A. N. Andrianov, A. B. Bugerya, E. N. Gladkova, et al., “Simple Things,” Superkomp’utery, No. 2, 58-61 (2014).
  13. The NORMA System.
    http://www.keldysh.ru/pages/norma . Cited June 10, 2019.
  14. A. N. Andrianov, A. B. Bugerya, K. N. Efimkin, and P. I. Koludarov, Modular Architecture of NORMA+ compiler , Preprint No. 64 (Keldysh Institute of Applied Mathematics, Moscow, 2011).
  15. A. B. Bugerya, “Interactive Debugging of Parallel Programs: Distributed Scheme of Interacting Components,” Programmirovanie, No. 3, 42-49 (2008) [Program. Comput. Software 34 (3), 154-159 (2008)].
  16. A. N. Andrianov, The Norma System. Development, Implementation and Usage for Solving Problems of Mathematical Physics on Parallel Computers , Doctoral Dissertation in Mathematics and Physics (Keldysh Institute of Applied Mathematics, Moscow, 2001).
  17. A. N. Andrianov and E. A. Andrianova, “Organization of Cyclic Process over Nonprocedural Structure,” Programmirovanie, No. 4, 62-72 (1996) [Program. Comput. Software 22 (4), 203-212 (1996)].
  18. A. N. Andrianov, The Synthesis of Parallel and Vector Programs by the Nonprocedural Norma Specification , Candidate’s Dissertation in Mathematics and Physics (Keldysh Institute of Applied Mathematics, Moscow, 1990).
  19. M. M. Vasiliev, K. N. Efimkin, and V. N. Ivanova, “On the Application of the Hydrodynamic Potentials Method to the Viscous Fluid Flow Problem,” Mat. Model. 6 (10), 57-65 (1994).
  20. A. N. Andrianov, G. N. Guseva, and I. B. Zadykhailo, “Norma Language Application in Calculation of Viscous Gas Subsonic Flow Model,” Mat. Model. 11 (9), 45-53 (1999).
  21. A. N. Andrianov, A. V. Zhokhova, and B. N. Chetverushkin, “Application of Parallel Algorithms for Gas-dynamic Flows on Irregular Grids,” in Applied Mathematics and Informatics (Mosk. Gos. Univ., Moscow, 1973), pp. 68-76.
  22. A. N. Andrianov and K. N. Efimkin, “The Use of the Norma System for Solving Computational Problems with Multiprocessor Computers with Distributed Memory,” Vychisl. Metody Programm. 1, 45-54 (2000).
  23. A. N. Andrianov, K. N. Efimkin, V. Yu. Levashov, and I. N. Shishkova, “The NORMA Language Application to Solution of Strong Nonequilibrium Transfer Processes Problem with Condensation of Mixtures on the Multiprocessor System,” in Lecture Notes in Computer Science (Springer, Heidelberg, 2001), Vol. 2073, pp. 502-510.
  24. A. N. Andrianov, “Application of the Norma Language for Solving Problems with Nested Grids,” Vychisl. Metody Programm. 3 (2), 1-10 (2002).
  25. A. N. Andrianov, A. V. Berezin, A. S. Vorontsov, et al., “The Radiational Electromagnetic Fields Modeling at the Multiprocessor Computing Systems,” Mat. Model. 20 (3), 98-114 (2008).
  26. NAS Parallel Benchmarks.
    http://www.nas.nasa.gov/publications/npb.html . Cited June 10, 2019.
  27. K-100 Hybrid Computing Cluster.
    https://ckp.kiam.ru/?hard . Cited June 10, 2019.
  28. CUDA Toolkit Documentation v10.1.168.
    https://docs.nvidia.com/cuda . Cited June 10, 2019.