Skip to content

Automatic Partitioning of MPI operations in MPI+OpenMP applications

License

Notifications You must be signed in to change notification settings

tudasc/CommPart

Repository files navigation

MPI Communication Partitioning

This clang Pass partitions MPI sending operations among different chunks of an OpenMP for loop. (see Chapter 4 of the upcoming MPI standard [MPI20])

Building

Building the Pass with Cmake is quite straightforward:

mkdir build; cd build; cmake ..; make -j 4 You need LLVM/clang version 11.1.

Running

For running the pass, you need an MPI Implementation built with clang (Tested with mpich 3.3.2). For convenience, you can use the 'run.sh' script in order to run the transformation. The code to transform has to include the correctness-checking-partitioned-impl.h header file, which provides a naive implementation of the Partitioned operations with built in correctness checking. demo-codes contains some examples.

References

[CommPart21] Jammer, Tim and and Bischof, Christian: Automatic Partitioning of MPI operations in MPI+OpenMP applications 2021.
[MPI20] Message Passing Interface Forum: MPI: A Message-Passing Interface Standard - Version 4.0 Draft, 2020

About

Automatic Partitioning of MPI operations in MPI+OpenMP applications

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published