First version of an abstract reduce function
This MR introduces an abstract reduce function which could replace e.g. the getMaxValue
function.
The std::function
might reduce the runtime of the function.
I made some benchmarks with the allGather
version of this.
Here is the average runtime in seconds per process for a very simple benchmark which performs the getMaxValue 1000 times with 4608 processes (64 nodes * 72 cores). Note: l
getMaxValue | w.o. MPI | abstract getMaxValue | w.o. MPI | ||
---|---|---|---|---|---|
first run | 0.20 s | 0.12 s | 0.63 s | 0.17 s | |
second run | 0.17 s | 0.12 s | 0.61 s | 0.17 s |
When using allReduce instead of allGather these are numbers for commit 6e12c653. again 1000 times with 4608 processes (64 nodes * 72 cores)
getMaxValue | w.o. MPI | abstract getMaxValue | w.o. MPI | ||
---|---|---|---|---|---|
first run | 0.18 s | 0.11 s | 0.22 s | 0.14 s | |
second run | 0.20 s | 0.11 s | 0.21 s | 0.14 s |
Edited by Dominik Thoennes