Skip to content

tud-zih-energy/roco2

Repository files navigation

roco2

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

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

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.

Dependencies

  • Mandatory
    • A compiler with C++14 and OpenMP support
    • A recent Linux kernel
    • Intel MKL or CBLAS
    • libnuma
  • Optional

Note that some configurations might have stronger requirements.

The build will try to detect the presence or absence of these dependencies. To enforce their usage set the corresponding options, e.g. by executing ccmake . in the build directory.

Building

This project uses the standard build process for CMake projects. Note that the configuration step will try to initialize the git submodules.

git clone https://github.com/tud-zih-energy/roco2.git
cd roco2
mkdir build && cd build
cmake ..
make

Some configurations have additional, more strict building instructions. Please refer to their respective readmes: P9 Highlow | P9 Longrun

Acknowledgments

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