Write a Blog >>
PLDI 2021
Sun 20 - Sat 26 June 2021 PLDI


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

Time     Topic Duration
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:15 Break 30 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:

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 Jun

Displayed time zone: Eastern Time (US & Canada) change

09:00 - 11:45
IMOP: A Self-Stabilizing Source-to-Source Compiler Framework for OpenMP CTutorials at Tutorials
IMOP: A Self-Stabilizing Source-to-Source Compiler Framework for OpenMP C
Aman Nougrahiya IIT Madras, V Krishna Nandivada IIT Madras