Interactive Parallelization Tool (IPT)


An Interactive Parallelization Tool (IPT) for assisting domain-­experts and students in efficiently parallelizing their existing C/C++/Fortran applications is being developed in this project. IPT will assist in the parallelization of serial applications using any of the following parallel programming models: Message Passing Interface (MPI), OpenMP, CUDA, and hybrid programming. For assisting in parallelization, IPT will use 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.

During self-­paced learning, IPT can be used to understand 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 usage of IPT.

Funding Source(s)

Related Link(s)

Current Members
Ritu Arora

Research Associate | 512-475-9411

Lars Koesterke

Research Associate | 512-475-9411

Joe Stubbs

Research Associate | 512-475-9411

Previous Members

Madhav Gupta
Julio Olaya
Kevin Chen
Trung Nguyen
Tatyana Matthews