A synthetic workload generator written in C++ with integrated Score-P instrumentation.
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'
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.
- A compiler with C++14 and OpenMP support
- A recent Linux kernel
- Intel MKL or CBLAS
- Score-P
- libnuma
- libcpufreq
- X86Adapt
-
Checkout the source
git clone https://github.com/tud-zih-energy/roco2.git cd roco2
-
Create build directory
mkdir build cd build
-
Run CMake
cmake ..
-
Run make
make
This work is based on "Hackenberg et. al.: Power measurement techniques on standard compute nodes: A quantitative comparison".