File | Date | Author | Commit |
---|---|---|---|
OpenSHMEM | 2019-05-24 |
![]() |
[fb161d] Add an OpenSHMEM implementation |
cmake | 2017-12-07 |
![]() |
[3d74f4] Initial Commit |
src | 2018-02-16 |
![]() |
[18b16b] copyright and licensing update |
.gitignore | 2019-05-24 |
![]() |
[fb161d] Add an OpenSHMEM implementation |
CMakeLists.txt | 2017-12-07 |
![]() |
[3d74f4] Initial Commit |
LEGAL.txt | 2018-02-16 |
![]() |
[18b16b] copyright and licensing update |
LICENSE.txt | 2018-02-16 |
![]() |
[18b16b] copyright and licensing update |
README.md | 2017-12-07 |
![]() |
[3d74f4] Initial Commit |
These microbenchmarks were originally developed by Evangelos Georganas to analyze the communication patterns in a high-performance de novo genome assembly application, HipMer.
They are described in full in [1]. (Go to https://sourceforge.net/p/hipmer to download hipmer and the microbenhcmarks together.)The microbenchmarks are further useful for understanding any distributed memory application with similar communication patterns, as well as cross-architecture network performance, and for that reason, were packaged in this standalone release.
See [2] and [3] for example studies and further information.Developers:
Evangelos Georganas (original author), Rob Egan (HipMer integration, cross-platform portability), Marquita Ellis (packaging for standalone release)
cd <path-you-specified>/merbench/;
mkdir build/; cd build;
cmake -DCMAKE_BUILD_TYPE=Release \
-DCMAKE_UPC_COMPILER=$(which upcc) \
-DCMAKE_INSTALL_PREFIX=../install/ \
../
...Note, this will result in the following file structure (which you very well may want to change):
merbench/
src/
build/
install/
bin/
-i <some integer=""> specifies the number of iterations over which to run each communication pattern (per message size)
-b <some integer=""> specifies the bound (inclusive) on maximum message size (in bytes)
-p <some integer=""> (optional) sets the size (in bytes) of per-thread local memory. By default, it is 10Kb.</some></some></some>
An example command is the following, using the default -p value:
upcrun -shared-heap=1500M -q -n 1920 ${INSTALL_PATH}/benchmark${IT} -i 20000 -b 32768
Assuming ${INSTALL_PATH} specifies the location of your installation, this command runs one of the benchmarks (replacing ${IT} with "Constr", "Trav", or "Get") with 1920 upc threads, up to message size 32768 bytes, and 20,000 iterations per message size.
The latency, bandwidth, and total elapsed time summary per message size will be output to stdout. The per-thread statistics will be written to *.dat files.
For further explanation of the upcrun parameters, see http://upc.lbl.gov/docs/user/upcrun.html.