-
Notifications
You must be signed in to change notification settings - Fork 0
uhhpctools/pgas-microbench
Folders and files
| Name | Name | Last commit message | Last commit date | |
|---|---|---|---|---|
Repository files navigation
------------------------------------
PGAS Microbenchmark Suite
------------------------------------
HPCTools Group
University of Houston
The PGAS Microbenchmark Suite contains a set of microbenchmarks for various
PGAS libraries and languages, as well as MPI for comparison purposes. All the latency and
bandwidth tests use communicating pairs. Therefore, these tests require an
even number of processes to be launched.
For N processes, the communicating pairs by default are:
{i, N/2+i}, for i = 0 .. N/2-1
The user may also optionally specify a partner offset argument on the
command line to control which processes communication with eachother for the
point-to-point microbenchmark tests. For example, for running the GASNet tests
with N processes and a partner offset of Q:
gasnetrun_ibv -n N ./gasnet_tests Q
the communicating pairs would be:
{i, i+Q}, for i in [0, N/2-1] where i mod 2*Q < Q
{i-Q, i}, for i in [0, N/2-1] where i mod 2*Q >= Q
Also included, for some models, are reduction tests. These involve all
processes in a sum-to-all reduction. This is currently available for CAF,
SHMEM, GASNet, and MPI.
=====================
DESCRIPTION OF TESTS
=====================
-----------------------------------------------
Put-Get Latency Test:
PUT small message to target address and then GET from target address N times.
Latency = (t2 - t1) / N
-----------------------------------------------
Put-Put Latency Test:
PUT small message to target address, synchronize with target, and then wait
for partner to do the same to me. Do this N times.
Latency = (t2 - t1) / N
-----------------------------------------------
Get-Get Latency Test:
GET small message to target address, synchronize with target, and then wait
for partner to do the same to me. Do this N times.
Latency = (t2 - t1) / N
----------------------------------------------
PUT Bandwidth Test:
PUT M-sized message N times.
Bandwidth = M*N / (t2 - t1)
-----------------------------------------------
GET Bandwidth Test
GET M-sized message N times.
Bandwidth = M*N / (t2 - t1)
-----------------------------------------------
PUT Bidirectional Bandwidth Test:
Pair of processes PUT M-sized message N times to eachother.
Bandwidth = M*N / (t2 - t1) (take average)
-----------------------------------------------
GET Bidirectional Bandwidth Test:
Pair of processes GET M-sized message N times to eachother.
Bandwidth = M*N / (t2 - t1) (take average)
-----------------------------------------------
Strided PUT Bandwidth Test:
PUT fixed-sized (size M) message to target with stride S, N times
Bandwidth = M*N / (t2 - t1)
-----------------------------------------------
Strided GET Bandwidth Test:
GET fixed-sized (size M) message from target with stride S, N times
Bandwidth = M*N / (t2 - t1)
-----------------------------------------------
Random Put Bandwidth Test:
PUT message of size M to random address at random target N times.
Bandwidth = M*N / (t2 - t1)
-----------------------------------------------
Random Get Bandwidth Test:
GET message of size M from random address at random target N times.
Bandwidth = M*N / (t2 - t1)
-----------------------------------------------
Reduction Test:
- Reduction message of size M to non-overlapping target, N times
- Reduction message of size M to same src buffer, N times
About
PGAS Microbenchmarks
Resources
Stars
Watchers
Forks
Releases
No releases published
Packages 0
No packages published