CLMPI is a PMPI wrapper for piggybacking Lamport-clock. The Lamport-clock follows below rules:
- Initial logical clock is 10 (LC=10).
- When an MPI process sends a message, it increments the clock by 1 (LC = LC + 1).
- When an MPI process receives a message, update LC to max of its own clock and received clock, and then increment by 1 (LC = max[LC, received LC] + 1).
This package also contain PBMPI (Piggyback MPI). PBMPI is a PMPI wrapper to send piggyback messages (currently a single value) with MPI messages.
CLMPI has dependent a software:
- StackP: https://github.com/PRUNER/StackP
$ git clone ssh://[email protected]:7999/prun/rempi.git
$ cd <rempi directory>
$ ./autogen.sh
$ tar zxvf ./clmpi_xxxxx.tar.bz
$ cd <rempi directory>
./configure --prefix=<path to installation directory> --with-stack-pmpi=<path to STACKP directory>
make
make install
./configure --prefix=<path to installation directory> --with-stack-pmpi=<path to STACKP directory> --with-bluegene
make
make install
Assuming SLURM
cd example
make
./example.sh
For more details, run ./configure -h
--with-stack-pmpi
: path to STACKP--with-bluegene
: (Required in BG/Q)