Skip to content

A synthetic workload generator written in C++

License

Notifications You must be signed in to change notification settings

s9105947/roco2

 
 

Repository files navigation

roco2

A synthetic workload generator written in C++ with integrated Score-P instrumentation.

Notes on this fork

This is a fork to get a simple experiment running. Several parts of the original roco2 have been severed or disabled.

Build with:

mkdir build && cd build
SCOREP_WRAPPER_INSTRUMENTER_FLAGS='--user --openmp --thread=omp --nocompiler' SCOREP_WRAPPER=off cmake .. -DCMAKE_C_COMPILER=scorep-gcc -DCMAKE_CXX_COMPILER=scorep-g++ -DUSE_SCOREP=ON -DBUILD_TESTING=OFF
make SCOREP_WRAPPER_INSTRUMENTER_FLAGS='--user --openmp --thread=omp --nocompiler'

Getting started

The folder src/configurations/example contains one example configuration. You can build this example, however it will require small adjustments to fit your machine. (See Build)

The file src/configurations/example/experiment.cpp contains all configuration, which is necessary to adapt to your machine. For simple adjustments, you can edit the section EDIT GENERIC SETTINGS. This section comprises the variables representing the duration of one experiment, a list of all tested frequencies and T-states, and the patterns of the active hardware threads. These four knobs determine the length of one execution. For more fine grained changes to the execution, you can edit the section EDIT TASK PLAN. This section determines the order of execution for the different workload kernels.

For further details, refer to the Wiki.

Requirements

  • A compiler with C++14 and OpenMP support
  • A recent Linux kernel
  • Intel MKL or CBLAS
  • Score-P
  • libnuma
  • libcpufreq
  • X86Adapt

Building with CMake

  1. Checkout the source

        git clone https://github.com/tud-zih-energy/roco2.git
        cd roco2
    
  2. Create build directory

        mkdir build
        cd build
    
  3. Run CMake

        cmake ..
    
  4. Run make

        make
    

Acknowledgments

This work is based on "Hackenberg et. al.: Power measurement techniques on standard compute nodes: A quantitative comparison".

About

A synthetic workload generator written in C++

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • C++ 71.6%
  • CMake 10.7%
  • C 6.7%
  • Python 4.8%
  • Jupyter Notebook 4.3%
  • Shell 1.9%