IMOP: A Self-Stabilizing Source-to-Source Compiler Framework for OpenMP C
OpenMP is an industry-standard API for writing portable shared-memory parallel programs in C/C++/Fortran. Almost every mainstream compiler of these languages now supports compilation of OpenMP programs. However, we are not aware of any compiler framework which was designed from the ground up taking OpenMP semantics into account. Consequently, not all components of such frameworks are generally applicable (or conforming) to OpenMP parallel semantics. This half-day tutorial presents a new open-source source-to-source compiler framework called IMOP (IIT Madras OpenMP compiler), which addresses such limitations.
Each component in IMOP has been designed and implemented by taking OpenMP syntax and semantics into account. IMOP comprises of more than 154 kLOC in Java, and works on OpenMP C programs as its input. With its numerous unique features such as OpenMP-aware compilation, automatic generation of parallel variants of the serial data-flow passes, self-stabilization of program abstractions under program modifications, integration with the Z3 SMT solver, and so on, IMOP can significantly simplify the task of writing tools for program analysis, profiling, and optimizations. In this hands-on tutorial, we will teach the fundamentals and certain advanced concepts of IMOP to the participants, which can help them in the faster development of their research prototypes.
More details on this tutorial can be found in this PDF, and in these CGO 2021 tutorial slides.
Total Duration: 2 hr 45 min. All times are in EDT (UTC -4).
|09:00||Introduction to IMOP||10 min|
|09:10||Representations and Traversals||35 min|
|09:45||Scopes, Symbols, Types, and Environments||20 min|
|10:05||Code Construction and Transformations||10 min|
|10:45||Advanced Transformations||10 min|
|10:55||Concurrency Representations||15 min|
|11:10||Data-flow Analyses||15 min|
|11:25||Self-stabilization and Z3-integration||15 min|
|11:40||Discussions and Q&A||05 min|
Note: As this will be a hands-on tutorial, we would encourage you to join via Zoom, for a more interactive experience.
Prerequisite software for trying hands-on exercises:
- Java SE 8 (required)
- Eclipse IDE for Java (recommended IDE)
- Apache Ant(TM) version 1.9.* (optional; required in absence of any IDE)
Installation instructions for IMOP are available here. (Note: Installing Z3 SMT solver is optional for this tutorial.)
imop at cse dot iitm dot ac dot in
Mon 21 JunDisplayed time zone: Eastern Time (US & Canada) change
09:00 - 11:45
|IMOP: A Self-Stabilizing Source-to-Source Compiler Framework for OpenMP C|
Aman Nougrahiya IIT Madras, V Krishna Nandivada IIT Madras