Installing WRENCH

Prerequisites

WRENCH is developed in C++. The code follows the C++14 standard, and thus older compilers may fail to compile it. Therefore, we strongly recommend users to satisfy the following requirements:

  • CMake - version 3.10 or higher

And, one of the following: - g++ - version 7.5 or higher - clang - version 9.0 or higher

Required Dependencies

(See the Installation Troubleshooting section below if encountering difficulties installing dependencies)

Optional Dependencies

  • Google Test – version 1.8 or higher (only required for running tests)

  • Doxygen – version 1.8 or higher (only required for generating documentation)

  • Sphinx - version 4.5 or higher along with the following Python packages: pip3 install sphinx-rtd-theme breathe recommonmark (only required for generating documentation)

  • Batsched – version 1.4 - useful for expanded batch-scheduled resource simulation capabilities

  • Asio - tag 1.28.0 or later (only required for building wrench-daemon, WRENCH’s REST API daemon)

Source Install

Building WRENCH

You can download the wrench-<version>.tar.gz archive from the GitHub releases page. Once you have installed dependencies (see above), you can install WRENCH as follows:

tar xf wrench-<version>.tar.gz
cd wrench-<version>
mkdir build
cd build
cmake ..
make -j8
make install # try "sudo make install" if you do not have write privileges

If you want to see actual compiler and linker invocations, add VERBOSE=1 to the compilation command:

make -j8 VERBOSE=1

To enable the use of Batsched (provided you have installed that package, see above):

cmake -DENABLE_BATSCHED=on .

If you want to stay on the bleeding edge, you should get the latest git version, and recompile it as you would do for an official archive:

git clone https://github.com/wrench-project/wrench

Compiling and running unit tests

Building and running the unit tests, which requires Google Test, is done as:

make -j8 unit_tests
./unit_tests

Compiling and running examples

Building the examples is done as:

make -j8 examples

All binaries for the examples are then created in subdirectories of build/examples/

Installation Troubleshooting

Could NOT find PkgConfig (missing: PKG_CONFIG_EXECUTABLE)

  • This error on MacOS is because the pkg-config package is not installed

  • Solution: install this package

    • MacPorts: sudo port install pkg-config

    • Brew: sudo brew install pkg-config

Could not find libgfortran when building the SimGrid dependency

  • This is an error that sometimes occurs on MacOS

  • A quick fix is to disable the SMPI feature of SimGrid when configuring it: cmake -Denable_smpi=off .

Docker Containers

WRENCH is also distributed in Docker containers. Please, visit the WRENCH Repository on Docker Hub to pull WRENCH’s Docker images.

The latest tag provides a container with the latest WRENCH release:

docker pull wrenchproject/wrench
# or
docker run --rm -it wrenchproject/wrench /bin/bash

The unstable tag provides a container with the (almost) current code in the GitHub’s master branch:

docker pull wrenchproject/wrench:unstable
# or
docker run --rm -it wrenchproject/wrench:unstable /bin/bash

Additional tags are available for all WRENCH releases.