A Platform-Independent Tool for Modeling Parallel Programs

Date:

Programming languages that utilize underlying parallel architectures—including shared memory, distributed memory, and Graphics Processing Units (GPUs)—are widely used for solving scientific problems. However, our study of multiple parallel programs across various domains revealed that these programs often contain a substantial amount of sequential code intermixed with parallel code.

When porting such programs to a different platform, the sequential portions are typically reused with minimal modification, while only the parallel sections require adaptation. Despite this common scenario, existing tools and programming environments provide limited support for separating and retargeting parallel code.

To address this, we introduce PPmodel, a tool designed to help programmers separate core computations from platform-specific parallel details. With PPmodel, developers can identify and retarget parallel sections of a program for execution on different architectures. The tool enables programmers to focus on the relevant parallel regions while abstracting away unrelated code.

We demonstrate the use of PPmodel by retargeting the parallel section of an OpenMP program for the circuit satisfiability problem to execute in a cluster environment using the Message Passing Interface (MPI). Slides