AutOMP: An Automatic OpenMP Parallelization Generator for Variable-Oriented High-Performance Scientific Codes
Gal Oren, Yehuda Ganan, Guy Malamud

TL;DR
AutOMP is an automatic tool that generates OpenMP parallelization directives for scientific codes by analyzing variable usage within loops, simplifying the process of modernizing legacy parallel applications.
Contribution
It introduces an automatic pre-processor that identifies variable privatization, synchronization, and reduction needs in scientific code loops for OpenMP parallelization.
Findings
Automates variable privatization and synchronization detection.
Reduces manual effort in parallelizing legacy scientific codes.
Provides ready-to-use OpenMP directives for loop parallelization.
Abstract
OpenMP is a cross-platform API that extends C, C++ and Fortran and provides shared-memory parallelism platform for those languages. The use of many cores and HPC technologies for scientific computing has been spread since the 1990s, and now takes part in many fields of research. The relative ease of implementing OpenMP, along with the development of multi-core shared memory processors (such as Intel Xeon Phi) makes OpenMP a favorable method for parallelization in the process of modernizing a legacy codes. Legacy scientific codes are usually holding large number of physical arrays which being used and updated by the code routines. In most of the cases the parallelization of such code focuses on loop parallelization. A key step in this parallelization is deciding which of the variables in the parallelized scope should be private (so each thread will hold a copy of them), and which…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
Taxonomy
TopicsParallel Computing and Optimization Techniques · Distributed and Parallel Computing Systems · Computational Physics and Python Applications
