An open API service indexing awesome lists of open source software.

https://github.com/tudasc/commpart

Automatic Partitioning of MPI operations in MPI+OpenMP applications
https://github.com/tudasc/commpart

Last synced: 2 months ago
JSON representation

Automatic Partitioning of MPI operations in MPI+OpenMP applications

Awesome Lists containing this project

README

        

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](#ref-mpi2020)\])

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