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.
Some test cases and the step-by-step process of parallelizing those test cases using IPT can be downloaded here.