IPT Banner

Just Getting Started with IPT?

Interactive Parallelization Tool (IPT)

Interactive Parallelization Tool (IPT) is a high-level tool for transforming serial C/C++ applications into their parallel variants. The parallel programming models that are currently supported by IPT are: MPI, OpenMP, CUDA, and Hybrid Programming models. The end-users of IPT must have an understanding of the basic concepts involved in parallel programming (e.g., data distribution and data gathering). After developing an understanding of the basic parallel programming concepts, IPT can be used by its target audience (domain experts and students) to semi-automatically generate parallel programs based on multiple parallel programming paradigms (MPI, OpenMP, and CUDA), and learn about these paradigms through observation and comparison. The IPT-based personalized learning approach complements the traditional methods of learning and training that usually emphasize the syntax and semantics of one or more programming standards. IPT provides a jumpstart to the domain experts in using modern High Performance Computing (HPC) platforms for their research and development needs, and hence lowers the adoption barriers to HPC.

For further high-level details related to IPT (motivation, design, benefits), please review our paper.

Want to Learn More?

Tutorial Files for IPT

Some test cases and the step-by-step process of parallelizing those test cases using IPT can be downloaded here.

IPT User Guide

The usage of IPT is also demonstrated through the following videos:

OpenMP Version of Molecular Dynamics Code Using the Interactive Parallelization Tool
Interactive Parallelization Tool - Parallelizing Molecular Dynamics with MPI
The Interactive Parallelization Tool - Parallelizing the FFT Algorithm with CUDA
The Interactive Parallelization Tool - Parallelizing the FFT algorithm with OpenMP
The Interactive Parallelization Tool - Parallelizing the FFT algorithm with MPI