Problem
The benchmarks in perf_tests/mpi/test_osu_latency.cpp do not implement OSU-style latency measurements. Each timed iteration performs only a one-way transfer: one rank sends while the other receives. Essentially, we are measuring the time spent by each
The OSU latency benchmark uses a ping-pong exchange and reports one-way latency as half the measured round-trip time (RTT). The current results, therefore, do not represent latency and cannot be meaningfully labeled as such.
Required Changes
- Implement a complete ping-pong in each timed iteration:
- Rank 0 sends, then receives the reply.
- Rank 1 receives, then sends the reply.
- Report one-way latency as half the round-trip time.
- Apply the same communication pattern to:
- Kokkos Comm core API (
MpiSpace)
- S&R
KokkosComm::mpi API
- Raw blocking MPI baseline
- Kokkos Comm core API (
NcclSpace)
- S&R
KokkosComm::Experimental::nccl API
- Raw NCCL baseline.
- Remove the nonblocking raw MPI baseline (to match what OSU benches actually implement).
- Fix the benchmark counters to reflect the communication performed.
Problem
The benchmarks in perf_tests/mpi/test_osu_latency.cpp do not implement OSU-style latency measurements. Each timed iteration performs only a one-way transfer: one rank sends while the other receives. Essentially, we are measuring the time spent by each
The OSU latency benchmark uses a ping-pong exchange and reports one-way latency as half the measured round-trip time (RTT). The current results, therefore, do not represent latency and cannot be meaningfully labeled as such.
Required Changes
MpiSpace)KokkosComm::mpiAPINcclSpace)KokkosComm::Experimental::ncclAPI