JuliaParallel / MPI.jl

MPI wrappers for Julia
https://juliaparallel.org/MPI.jl/
The Unlicense
381 stars 122 forks source link

Implement OSU Microbenchmarks #403

Open simonbyrne opened 4 years ago

simonbyrne commented 4 years ago

It would be useful for (a) comparing performance with C, and (b) comparing different MPI libraries:

http://mvapich.cse.ohio-state.edu/benchmarks/

giordano commented 2 years ago

For the record, other commonly used MPI benchmarks are the Intel ones (Intel MPI Benchmarks, or IMB): https://github.com/intel/mpi-benchmarks (but they're somewhat more overengineered than OSU's). In https://github.com/giordano/julia-on-fugaku/blob/81190ad47892f4bc4e98fde0d32963497f73d252/benchmarks/mpi-pingpong/pingpong.jl I implemented a benchmark which should be pretty close to IMB's pingpong.

vchuravy commented 2 years ago

@peterahrens wrote some benchmarks a couple of years ago. Pete do you still have those around?

vchuravy commented 2 years ago

Here is the latency from OSU https://github.com/JuliaParallel/UCX.jl/blob/main/examples/benchmarks/mpi/latency.jl

giordano commented 2 years ago

I'd like to run some largish benchmarks, maybe with collective operations, I've already covered the point-to-point one :grin: For this class, Fugaku MPI performance report uses IMB's Allreduce, Reduce, Allgather, Allgatherv, Gather, Gatherv, Scatter, Scatterv, Alltoall, Alltoallv, Bcast, Barrier, and it'd be great to be able to compare with their results as I did for pingpong, but reading IMB code isn't much fun (and not sure the license allows reusing the code :eyes:) Edit: ok, license is BSD-3, so not a problem

willow-ahrens commented 2 years ago

Valentin, unfortunately I think that code is lost to time. However, it sounds like the code y'all have is already more sophisticated than what I was doing.

giordano commented 2 years ago

I created https://github.com/JuliaParallel/MPIBenchmarks.jl to collect benchmarks for MPI.jl. At the moment there are IMB PingPong, Allreduce, and Reduce (or at least something which should be somewhat close to them). Can also add OSU benchmarks there. The idea is to have benchmarks which should be easy to compare with these suites.