Setup

Words of Warning

The OpenFabrics Alliance distribution includes several benchmark tools, e.g.:

However, ib_send_lat's results (and probably others...) are a little difficult to make sense of. Here are some things worth keeping in mind:

  1. All results given are one-way. So multiply by two for approximate RTT times.
  2. The program defaults to using inline sends for messages up to 400 bytes. Inline means that the data to be sent is colocated with the WQE, avoiding an extra fetch. For small transactions, this apparently results in a 50% better RTT. See the -I (capital i) flag.
  3. It reports min, max and "typical" times. Typical is the median, not the mean. Mean is often up to 20% worse than median.

In addition, it appears that the ib_write_lat benchmark uses writes in one direction, and ib_post_sends in the other to signal completion. If times are calculated like ib_send_lat, then the values obtained are 1/2 RTT, which conflates RDMA and send/receive operation times. This is probably more honest for an actual RDMA user, but may give a worse  one-way time for the write operation.

RTT Results using ib_send_lat

Note:

RTT Result Histograms: