Skip to content

Ergus/nanos-cluster-benchmarks

Repository files navigation

Readme

This is the basic centralized set of benchmarks for OmpSs-2@Cluster.

Installation

Right now it requires a set of dependencies and requirements to work. We will try to reduce the dependencies as much as possible in the future.

  1. OmpSs-2@Cluster requirements.

  2. Mercurium

  3. Nanos6

To build the code you need first to install all the dependencies above. Then just:

git clone --recursive 'url_to_this_repo'
cd nanos6-cluster-benchmarks
mkdir build
cd build
cmake ..
make

When cloning --recursive some submodules will be downloaded and compiled automatically.

  1. ArgParserC

  2. cmacros

  3. ArgParserBash

After this all the benchmarks should be build inside a directory with the same name than the original one in the project's root directory.

Adding benchmarks

To add a new benchmark you only need to create a new directory inside the project's root directory and add a CMakeLists.txt within it with the build instructions.

You don't need to modify anything in the main CMakeLists.txt or anywhere else outside that directory. If you want to add similar benchmarks that reuses some code between them you can add them in the same directory.

Contribution hints

  1. Please try to rely in the utils functionalities when possible instead of using external no standard tools.

  2. Make the benchmarks keeping readability and simplicity as much as possible (read The Zen of Python or execute python -c 'import this').

  3. You can use C (.h .c) and C++ (.hpp .cpp) mainly, please respect the filenames.

  4. Use the linux kernel coding style.

Tests with CTest

Some very simple set of tests are added when a Python and NumPy are detected. These are very helpfull during developement and the addition is optional.

It is recommended to add such tests in order to check for correctness in the benchmarks, the runtime and the executions during modifications.