Interactive Parallelization Tool (IPT)

Purpose

Parallelizing serial applications written in C/C++/Fortran using MPI/OpenMP/CUDA.

Overview

Interactive Parallelization Tool (IPT) assists domain-­experts and students in efficiently parallelizing their existing C/C++ applications using any of the following parallel programming models: Message Passing Interface (MPI), OpenMP, CUDA, and hybrid programming. For assisting in parallelization, IPT uses its knowledgebase of parallel programming expertise (encapsulated as design templates and rules), and specifications (i.e., what to parallelize and where) as provided by users. It parses the user-specifications and accordingly analyses the input source code to reengineer it for generating a parallel version of the code.

IPT can be used for self-­paced learning of different parallel programming paradigms. It helps in understanding the differences in the structure and performance of the parallel code generated for different specifications while using the same serial application.

A working prototype of IPT has been developed to support explicit parallelization of specific categories of C/C++ applications. We are currently working on (1) making the existing IPT prototype production-­quality, (2) extending the capabilities of IPT for parallelizing additional categories of C/C++ applications, (3) prototyping support for parallelizing Fortran applications, (4) making IPT accessible through a web-portal for convenient code generation and testing on computational resources of the national CyberInfrastructure (CI), and (5) engaging the community in the development process and the usage of IPT.

Impact

IPT is currently under development, but has already been used for an XSEDE and TACC training on "Introduction to OpenMP using IPT."


Cite As
Ritu Arora, Julio Olaya, and Madhav Gupta. A Tool for Interactive Parallelization. In Proceedings of the 2014 Annual Conference on Extreme Science and Engineering Discovery Environment (XSEDE '14). ACM, New York, NY, USA, , Article 51 , 8 pages. DOI: http://dx.doi.org/10.1145/2616498.2616558

Contributors

Ritu Arora
Research Associate, High Performance Computing Group

Joe Stubbs
Manager, Cloud & Interactive Computing (CIC)

Lars Koesterke
Research Associate, HPC Performance & Architectures Group

Publications

Ritu Arora, Julio Olaya, and Madhav Gupta. "A Tool for Interactive Parallelization." In Proceedings of the 2014 Annual Conference on Extreme Science and Engineering Discovery Environment (XSEDE '14). ACM, New York, NY, USA, Article 51, 8 pages.

Ritu Arora, Purushotham Bangalore, Marjan Mernik, "Raising the level of abstraction for developing message passing applications", The Journal of Supercomputing, Vol. 59, No. 2, 2012, pp. 1079 - 1100.

Ritu Arora, Purushotham Bangalore, Marjan Mernik, "Tools and techniques for non-invasive explicit parallelization", The Journal of Supercomputing, Vol. 62, No. 3, 2012, pp. 1583-1608.

Ritu Arora, Purushotham Bangalore, Marjan Mernik, "A Framework for Semiautomatic Explicit Parallelization", Scalable Computing and Communications: Theory and Practice, Wiley-IEEE Computer Society Press, ISBN: 978-1-1181-6265-1, 2013, pp. 209 – 226.

Ritu Arora, Purushotham Bangalore, Marjan Mernik, "A Domain-Specific Language for High-Level Parallelization", Formal and Practical Aspects of Domain-Specific Languages: Recent Developments, ISBN13: 9781466620926, 2013, pp. 532 – 552.

Ritu Arora, Ejenio Capetillo, Purushotham Bangalore, and Marjan Mernik. "A high-level framework for parallelizing legacy applications for multiple platforms", In Proceedings of the Conference on Extreme Science and Engineering Discovery Environment: Gateway to Discovery (XSEDE '13). ACM, New York, NY, USA, Article 58, 8 pages. DOI=10.1145/2484762.2484829

Ritu Arora, "Fraspa: A Framework for Synthesizing Parallel Applications", Ph.D. Dissertation. University of Alabama at Birmingham, Birmingham, AL, USA. Advisor(s) Purushotham Bangalore. AAI3434974.

Funding Source

National Science Foundation Award 1642396: SI2-SSE: An Interactive Parallelization Tool