Skip to content

Fix OSU latency benchmarks to actually measure latency #244

Description

@dssgabriel

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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    A-perf-testsArea: KokkosComm performance testsC-bug-reportCategory: a bug reportT-performanceTopic: something related to performance

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions