Classification of IMB-RMA Benchmarks

Classification of IMB-RMA Benchmarks#

All the IMB-RMA benchmarks fall into the following categories:

Single Transfer

In these benchmarks, one process accesses the memory of another process, in unidirectional or bidirectional manner. Single Transfer IMB-RMA benchmarks only run on two active processes. Throughput values are measured in MBps and can be calculated as follows:

throughput = X/time,

where

  • time is measured in μsec.

  • X is the length of a message, in bytes.

Multiple Transfer

In these benchmarks, one process accesses the memory of several other processes.

Throughput values are measured in MBps and can be calculated as follows:

throughput = X/time   * N, where

  • time is measured in μsec.

  • X is the length of a message, in bytes.

  • N is the number of target processes.

    Note

    The final throughput value is multiplied by the amount of target processes since the transfer is performed to every process except the origin process itself.

Parallel Transfer

This class contains benchmarks that operate on several processes in parallel. These benchmarks show bare timing values: maximum, minimum, and the average time among all the ranks participating in the benchmark measurements.

The table below lists all IMB-RMA benchmarks and specifies their properties:

Benchmark

Type

Aggregated Mode

Unidir_put

Single Transfer

Supported

Unidir_get

Single Transfer

Supported

Bidir_put

Single Transfer

Supported

Bidir_get

Single Transfer

Supported

One_put_all

Multiple Transfer

N/A

One_get_all

Multiple Transfer

N/A

All_put_all

Parallel Transfer

N/A

All_get_all

Parallel Transfer

N/A

Put_local

Single Transfer

Supported

Put_all_local

Multiple Transfer

N/A

Exchange_put

Parallel Transfer

N/A

Exchange_get

Parallel Transfer

N/A

Accumulate

Single Transfer

Supported

Get_accumulate

Single Transfer

Supported

Fetch_and_op

Single Transfer

Supported

Compare_and_swap

Single Transfer

Supported

Truly_passive_put

Single Transfer*

N/A

Get_local

Single Transfer

Supported

Get_all_local

Multiple Transfer

N/A

* The output format differs from the regular Single Transfer output. For details, see Truly_passive_put.