Menu

Tree [fb161d] master /
 History

HTTPS access


File Date Author Commit
 OpenSHMEM 2019-05-24 Antonio Lain Antonio Lain [fb161d] Add an OpenSHMEM implementation
 cmake 2017-12-07 Marquita Ellis - Iris Marquita Ellis - Iris [3d74f4] Initial Commit
 src 2018-02-16 M Ellis M Ellis [18b16b] copyright and licensing update
 .gitignore 2019-05-24 Antonio Lain Antonio Lain [fb161d] Add an OpenSHMEM implementation
 CMakeLists.txt 2017-12-07 Marquita Ellis - Iris Marquita Ellis - Iris [3d74f4] Initial Commit
 LEGAL.txt 2018-02-16 M Ellis M Ellis [18b16b] copyright and licensing update
 LICENSE.txt 2018-02-16 M Ellis M Ellis [18b16b] copyright and licensing update
 README.md 2017-12-07 Marquita Ellis - Iris Marquita Ellis - Iris [3d74f4] Initial Commit

Read Me

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]. (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)

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/ \
    ../

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