Skip to main content

Automated Design of Parallel Programs for Heterogeneous Platforms Using Algebra-Algorithmic Tools

  • Conference paper
  • First Online:
  • 365 Accesses

Part of the book series: Communications in Computer and Information Science ((CCIS,volume 1175))

Abstract

The further development of software tools based on algebra-algorithmic approach and term rewriting technique in the direction of automated design of programs for heterogeneous platforms using OpenCL is proposed. The method for semi-automatic parallelization of loop operators is developed. The particular feature of the approach consists in using high-level algebra-algorithmic program specifications. The tools automate design of parallel programs starting with construction of an algorithm scheme by superposition of operations of Glushkov’s system of algorithmic algebra and then synthesize corresponding source code in a target programming language on the basis of the scheme. The parallelization technique is based on loop tiling and data serialization and uses rewriting rules to transform programs. The application of the approach is illustrated by an example of developing an OpenCL interpolation program used in numerical weather forecasting. The results of the experiment consisting in executing the generated OpenCL program on a graphics processing unit are given.

This is a preview of subscription content, log in via an institution.

Buying options

Chapter
USD   29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD   39.99
Price excludes VAT (USA)
  • Available as EPUB and PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD   54.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Learn about institutional subscriptions

References

  1. OpenCL Overview. The open standard for parallel programming of heterogeneous systems. https://www.khronos.org/opencl. Accessed 26 Sept 2019

  2. Nvidia CUDA technology. http://www.nvidia.com/cuda. Accessed 26 Sept 2019

  3. PIPS: Automatic Parallelizer and Code Transformation Framework. http://pips4u.org. Accessed 26 Sept 2019

  4. PPCG: Automatic parallelizing and optimizing compiler. http://freecode.com/projects/ppcg. Accessed 26 Sept 2019

  5. Andon, P.I., Doroshenko, A.Y., Zhereb, K.A., Yatsenko, O.A.: Algebra-algorithmic models and methods of parallel programming. Akademperiodyka, Kyiv (2018)

    Book  Google Scholar 

  6. Doroshenko, A., Zhereb, K., Yatsenko, O.: Developing and Optimizing Parallel Programs with Algebra-Algorithmic and Term Rewriting Tools. In: Ermolayev, V., Mayr, Heinrich C., Nikitchenko, M., Spivakovsky, A., Zholtkevych, G. (eds.) ICTERI 2013. CCIS, vol. 412, pp. 70–92. Springer, Cham (2013). https://doi.org/10.1007/978-3-319-03998-5_5

    Chapter  Google Scholar 

  7. Doroshenko, A., Shevchenko, R.: A rewriting framework for rule-based programming dynamic applications. Fundamenta Informaticae 72(1–3), 95–108 (2006)

    MATH  Google Scholar 

  8. Doroshenko, A., Beketov, O., Bondarenko, M., Yatsenko, O.: Automated generation of OpenCL programs based on algebra-algorithmic approach. In: Ermolayev, V., Mallet, F., Yakovyna, V., Mayr, H.C., Spivakovsky, A. (eds.) 15th International Conference “ICT in Education, Research and Industrial Applications. Integration, Harmonization and Knowledge Transfer” (ICTERI 2019), vol. 1, pp. 215–222 (2019)

    Google Scholar 

  9. Doroshenko, A., Beketov, O.: Large-scale loops parallelization for GPU accelerators. In: Ermolayev, V., Mallet, F., Yakovyna, V., Mayr, H.C., Spivakovsky, A. (eds.) 15th International Conference “ICT in Education, Research and Industrial Applications. Integration, Harmonization and Knowledge Transfer” (ICTERI 2019), vol. 1, pp. 82–89 (2019)

    Google Scholar 

  10. Prusov, V., Doroshenko, A.: Computational techniques for modeling atmospheric processes. IGI Global, Hershey (2018). https://doi.org/10.4018/978-1-5225-2636-0

  11. Wolfe, M.: More iteration space tiling. In: 1989 ACM/IEEE Conference on Supercomputing, ser. Supercomputing 1989, pp. 655–664. ACM, New York (1989)

    Google Scholar 

  12. Bernstein, A.J.: Analysis of programs for parallel processing. IEEE Trans. Electron. Comput. EC 15(5), 757–763 (1966)

    Article  Google Scholar 

  13. Doroshenko, AYu., Yatsenko, O.A., Beketov, O.G.: Algorithm for automatic loop parallelization for graphics processing units. Probl. Program. 4, 28–36 (2017). (in Ukrainian)

    Article  Google Scholar 

  14. Flener, P.: Achievements and Prospects of Program Synthesis. In: Kakas, Antonis C., Sadri, F. (eds.) Computational Logic: Logic Programming and Beyond. LNCS (LNAI), vol. 2407, pp. 310–346. Springer, Heidelberg (2002). https://doi.org/10.1007/3-540-45628-7_13

    Chapter  MATH  Google Scholar 

  15. Gulwani, S.: Dimensions in program synthesis. In: 12th international ACM SIGPLAN symposium on Principles and practice of declarative programming, pp. 13–24. ACM, New York (2010)

    Google Scholar 

  16. Kalms, L., Hebbeler, T., Göhringer, D.: Automatic OpenCL code generation from LLVM–IR using polyhedral optimization. In: 9th Workshop and 7th Workshop on Parallel Programming and RunTime Management Techniques for Manycore Architectures and Design Tools and Architectures for Multicore Embedded Computing Platforms (PARMA–DITAM 2018), pp. 45–50. ACM, New York (2018). https://doi.org/10.1145/3183767.3183779

  17. Rodrigues, A., Guyomarc’h, F., Dekeyser, J.L.: An MDE approach for automatic code generation from UML/MARTE to OpenCL. Comput. Sci. Eng. 15(1), 46–55 (2012)

    Article  Google Scholar 

  18. Li, P., Brunet, E., Trahay, F., Parrot, C., Thomas, G., Namyst, R.: Automatic OpenCL code generation for multi-device heterogeneous architectures. In: 44th International Conference on Parallel Processing (ICPP’ 2015), pp. 959–968. IEEE, Piscataway (2015)

    Google Scholar 

  19. Tillet, P., Rupp, K., Selberherr, S.: An automatic OpenCL compute kernel generator for basic linear algebra operations. In: 2012 Symposium on High Performance Computing (HPC 2012), pp. 4:1–4:2. Society for Computer Simulation International, San Diego (2012)

    Google Scholar 

  20. Steuwer, M., Fensch, C., Lindley, S., Dubach, C.: Generating performance portable code using rewrite rules: from high-level functional expressions to high-performance OpenCL code. 20th ACM SIGPLAN International Conference on Functional Programming (ICFP 2015). ACM SIGPLAN Notices, vol. 50, pp. 205–217. ACM, New York (2015)

    Chapter  Google Scholar 

  21. Fabeiro, J.F., Andrade, D., Fraguela, B.B., Doallo, R.: Automatic generation of optimized OpenCL codes using OCLoptimizer. Comput. J. 58(11), 3057–3073 (2015)

    Article  Google Scholar 

  22. Sotomayor, R., Sanchez, L.M., Garcia Blas, J., Fernandez, J., Garcia, J.D.: Automatic CPU/GPU generation of multi-versioned OpenCL kernels for C++ scientific applications. Int. J. Parallel Prog. 45(2), 262–282 (2017). https://doi.org/10.1007/s10766-016-0425-6

    Article  Google Scholar 

  23. Supercomputer of IC. http://icybcluster.org.ua/index.php?lang_id=3&menu_id=1. Accessed 26 Sept 2019

Download references

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Olena Yatsenko .

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2020 Springer Nature Switzerland AG

About this paper

Check for updates. Verify currency and authenticity via CrossMark

Cite this paper

Doroshenko, A., Beketov, O., Bondarenko, M., Yatsenko, O. (2020). Automated Design of Parallel Programs for Heterogeneous Platforms Using Algebra-Algorithmic Tools. In: Ermolayev, V., Mallet, F., Yakovyna, V., Mayr, H., Spivakovsky, A. (eds) Information and Communication Technologies in Education, Research, and Industrial Applications. ICTERI 2019. Communications in Computer and Information Science, vol 1175. Springer, Cham. https://doi.org/10.1007/978-3-030-39459-2_1

Download citation

  • DOI: https://doi.org/10.1007/978-3-030-39459-2_1

  • Published:

  • Publisher Name: Springer, Cham

  • Print ISBN: 978-3-030-39458-5

  • Online ISBN: 978-3-030-39459-2

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics