-
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