Skip to main content

Application of the LLVM Compiler Infrastructure to the Program Analysis in SAPFOR

  • Conference paper
  • First Online:
Supercomputing (RuSCDays 2018)

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

Included in the following conference series:

Abstract

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.

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

Access this chapter

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

Institutional subscriptions

References

  1. Klinov, M.S., Krukov, V.A.: Automatic parallelization of fortran programs. Mapping to cluster. Vestnik of Lobachevsky University of Nizhni Novgorod, no. 2, pp. 128–134. Nizhni Novgorod State University Press, Nizhni Novgorod (2009). (in Russian)

    Google Scholar 

  2. Lattner, C., Adve, V.: LLVM: a compilation framework for lifelong program analysis & transformation. In: Proceedings of the 2004 International Symposium on Code Generation and Optimization (CGO 2004), Palo Alto, California (2004)

    Google Scholar 

  3. Seo, S., Jo, G., Lee, J.: Performance characterization of the nas parallel benchmarks in OpenCL. In: 2011 IEEE International Symposium on Workload Characterization (IISWC), pp. 137–148 (2011)

    Google Scholar 

  4. Konovalov, N.A., Krukov, V.A., Mikhajlov, S.N., Pogrebtsov, A.A.: Fortan DVM: a language for portable parallel program development. Program. Comput. Softw. 21(1), 35–38 (1995)

    MATH  Google Scholar 

  5. Bakhtin, V.A., et al.: Extension of the DVM-model of parallel programming for clusters with heterogeneous nodes. Bulletin of South Ural State University. Series: Mathematical Modeling, Programming & Computer Software, vol. 18(277), nol. 12, pp. 82–92. Publishing of the South Ural State University, Chelyabinsk (2012). (in Russian)

    Google Scholar 

  6. NAS Parallel Benchmarks. https://www.nas.nasa.gov/publications/npb.html. Accessed 14 Apr 2018

  7. Kataev, N.A., Bulanov, A.A.: Automated transformation of Fortran programs essential for their efficient parallelization through SAPFOR system. In: Parallel Computational Technologies (PCT 2015): Proceedings of the International Scientific Conference, Ekaterinburg, Russia, 30th March–3rd April 2015, pp. 172–177. Chelyabinsk, Publishing of the South Ural State University (2015). (in Russian)

    Google Scholar 

  8. Kataev, N., Kolganov, A., Titov, P.: Automated parallelization of a simulation method of elastic wave propagation in media with complex 3D geometry surface on high-performance heterogeneous clusters. In: Malyshkin, V. (ed.) PaCT 2017. LNCS, vol. 10421, pp. 32–41. Springer, Cham (2017). https://doi.org/10.1007/978-3-319-62932-2_3

    Chapter  Google Scholar 

  9. Bakhtin, V.A., Kataev, N.A., Klinov, M.S., Krukov, V.A., Podderugina, N.V., Pritula, M.N.: Automatic parallelization of Fortran programs to a cluster with graphic accelerators. In: Parallel Computational Technologies (PCT 2012): Proceedings of the International Scientific Conference, Novosibirsk, Russia, 26 March–30 2012, pp. 373–379. Publishing of the South Ural State University, Chelyabinsk (2012). (in Russian)

    Google Scholar 

  10. pC++/Sage++. http://www.extreme.indiana.edu/sage/. Accessed 14 Apr 2018

  11. Niziev, V.G., Koldoba, A.V., Mirzade, F.H., Panchenko, V.Y., Poveschenko, Y.A., Popov, M.V.: Numerical modeling of melting process of two-component powders in laser agglomeration. Math. Model. 23(4), 90–102 (2011). (in Russian)

    MATH  Google Scholar 

  12. Baranov, M.S., Ivanov, D.I., Kataev, N.A., Smirnov, A.A.: Automated parallelization of sequential C-programs on the example of two applications from the field of laser material processing. In: CEUR Workshop Proceedings 1st Russian Conference on Supercomputing Days 2015, vol. 1482, p. 536 (2015)

    Google Scholar 

  13. Armstrong, B., Eigenmann, R.: Challenges in the automatic parallelization of large-scale computational applications. In: Proceedings of SPIE 4528, Commercial Applications for High-Performance Computing, 27 July 2001, p. 50 (2001). https://doi.org/10.1117/12.434876

  14. Bakhtin, V.A., et al.: Automation of software packages parallelization. In: Scientific Service on the Internet. Proceedings of the International Scientific Conference, Novorossiysk, 19th September–24th 2016, pp. 76–85. Keldysh Institute of Applied Mathematics RAS, Moscow (2016)

    Google Scholar 

  15. Lee, S.-I., Johnson, T.A., Eigenmann, R.: Cetus – an extensible compiler infrastructure for source-to-source transformation. In: Rauchwerger, L. (ed.) LCPC 2003. LNCS, vol. 2958, pp. 539–553. Springer, Heidelberg (2004). https://doi.org/10.1007/978-3-540-24644-2_35

    Chapter  MATH  Google Scholar 

  16. ROSE compiler infrastructure. http://rosecompiler.org/. Accessed 14 Apr 2018

  17. Optimizing parallelizing system. http://ops.rsu.ru/en/about.shtml. Accessed 14 Apr 2018

  18. Clang: a C language family frontend for LLVM. https://clang.llvm.org/. Accessed 14 Apr 2018

  19. GitHub - flang-compiler/flang. https://github.com/flang-compiler/flang. Accessed 14 Apr 2018

  20. Goff, G., Kennedy, K., Tseng, C.-W.: Practical dependence testing. In: Proceedings of the ACM SIGPLAN 1991 Conference on Programming Language Design and Implementation (PLDI 1991), pp. 15–29. ACM, New York (1991)

    Google Scholar 

  21. Tu, P., Padua, D.: Automatic array privatization. In: Pande, S., Agrawal, D.P. (eds.) Compiler Optimizations for Scalable Parallel Systems. LNCS, vol. 1808, pp. 247–281. Springer, Heidelberg (2001). https://doi.org/10.1007/3-540-45403-9_8

    Chapter  Google Scholar 

Download references

Acknowledgement

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”.

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Nikita Kataev .

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2019 Springer Nature Switzerland AG

About this paper

Check for updates. Verify currency and authenticity via CrossMark

Cite this paper

Kataev, N. (2019). Application of the LLVM Compiler Infrastructure to the Program Analysis in SAPFOR. In: Voevodin, V., Sobolev, S. (eds) Supercomputing. RuSCDays 2018. Communications in Computer and Information Science, vol 965. Springer, Cham. https://doi.org/10.1007/978-3-030-05807-4_41

Download citation

  • DOI: https://doi.org/10.1007/978-3-030-05807-4_41

  • Published:

  • Publisher Name: Springer, Cham

  • Print ISBN: 978-3-030-05806-7

  • Online ISBN: 978-3-030-05807-4

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics