Menu

Home

M.M. Ellis

merbench

Description

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]. To download (HipMer and) these microbenhcmarks together, go to https://sourceforge.net/p/hipmer .
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.
This distribution also contains an OpenSHMEM port of MerBench from an external contributor, Antonio Lain. See the OpenSHMEM/ directory for details, including separate build and installation instructions.

Developers:
Evangelos Georganas (original author), Rob Egan (HipMer integration, cross-platform portability), Marquita Ellis (fixes, extensions, standalone release)

Publications

  1. Evangelos Georganas "Scalable Parallel Algorithms for Genome Analysis". PhD thesis, EECS Department, University of California, Berkeley, August 2016.
  2. Evangelos Georganas, Marquita Ellis, Rob Egan, Steven Hofmeyr, Aydın Buluç, Brandon Cook, Leonid Oliker, Katherine Yelick, "MerBench: PGAS Benchmarks for High Performance Genome Assembly". 2nd Annual PGAS Applications Workshop (PAW17) held in conjuction with The International Conference for High Performance Computing, Networking, Storage and Analysis (SC17), Denver, CO, USA, November 2017.
  3. Marquita Ellis, Evangelos Georganas, Rob Egan, Steven Hofmeyr, Aydın Buluç, Brandon Cook, Leonid Oliker and Katherine Yelick, "Performance Characterization of De Novo Genome Assembly on Leading Parallel Systems". 23rd International European Conference on Parallel and Distributed Computing (Euro-Par 2017), Santiago de Compostela, Galicia, Spain, August 2017.

Requirements

  1. A working CMake installation
  2. A working Unified Parallel C (UPC) environment
    • Berkeley UPC >= 2.20.0 (http://upc.lbl.gov/)
  3. A working C/C++ compiler
    • Intel >= 15.0.1.133
    • GCC >= 4.8
    • CLang >= 700.1.81

Building & Installing

  1. The build process utilizes cmake. After downloading merbench to <you-specify-this-path>/merbench/, a basic example build proceedure is:</you-specify-this-path>
    cd <path-you-specified>/merbench/; 
    mkdir build/; cd build;
    cmake -DCMAKE_BUILD_TYPE=Release \
    -DCMAKE_UPC_COMPILER=$(which upcc) \
    -DCMAKE_INSTALL_PREFIX=../install/ \
    ../
    make all install

...Note, this will result in the following file structure (which you very well may want to change):

merbench/
    src/
    build/
    install/
        bin/

Running

Parameters

-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>

Example

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.


Want the latest updates on software, tech news, and AI?
Get latest updates about software, tech news, and AI from SourceForge directly in your inbox once a month.