User guide
6–SHMEM Description and Configuration
SHMEM Benchmark Programs
IB0054606-02 A 6-27
SHMEM Benchmark Programs
The following SHMEM micro-benchmark programs are included:
shmem-get-latency: measures get latency
shmem-get-bw: measures streaming get bandwidth (uni-directional)
shmem-get-bibw: measures streaming get bandwidth (bi-directional)
shmem-put-latency: measures put latency
shmem-put-bw: measures streaming put bandwidth (uni-directional)
shmem-put-bibw: measures streaming put bandwidth (bi-directional)
The programs can be used to measure round-trip get latency, one way put
latency, get and put bandwidth, as well as get and put message rates.
The benchmarks must be run with an even number of processes. They are
typically run on exactly two hosts with the processes equally-divided between
them. The processes are split up into pairs, with one from each pair on either host
and each pair is loaded with the desired traffic pattern. The benchmark
automatically determines the correct mapping, regardless of the actual rank order
of the processes and their mapping to the two hosts.
Alternatively, if the -f option is specified the benchmark is forced to use the rank
order when arranging the communication pattern. In this mode and with np ranks,
each rank i in (0, np/2) is paired with rank (np / 2) + i. For example, this
mode can be used to test SHMEM performance within a single node.
The micro-benchmarks have the command line options shown in Table 6-4
shmem_ptr
returns the address if the PE is my PE,
otherwise NULL
Table 6-4. QLogic SHMEM micro-benchmarks options
Option Description
-a INT a log2 of desired alignment for buffers (default = 12)
Table 6-3. SHMEM Application Programming Interface Calls
Operation Calls