.. _install:
Installing WRENCH
*****************
.. _install-prerequisites:
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
.. _install-prerequisites-dependencies:
Required Dependencies
---------------------
- `SimGrid `__ – version 3.32
- `JSON for Modern C++ `__ – version
3.9.0 or higher
(See the :ref:`install-troubleshooting` section below if encountering difficulties
installing dependencies)
.. _install-prerequisites-opt-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
.. _install-source:
Source Install
==============
.. _install-source-build:
Building WRENCH
---------------
You can download the ``wrench-.tar.gz`` archive from the `GitHub
releases `__ page.
Once you have installed dependencies (see above), you can install WRENCH
as follows:
.. code:: sh
tar xf wrench-.tar.gz
cd wrench-
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:
.. code:: sh
make -j8 VERBOSE=1
To enable the use of Batsched (provided you have installed that package,
see above):
.. code:: sh
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:
.. code:: sh
git clone https://github.com/wrench-project/wrench
.. _install-unit-tests:
Compiling and running unit tests
--------------------------------
Building and running the unit tests, which requires Google Test, is done
as:
.. code:: sh
make -j8 unit_tests
./unit_tests
.. _install-examples:
Compiling and running examples
------------------------------
Building the examples is done as:
.. code:: sh
make -j8 examples
All binaries for the examples are then created in subdirectories of
``build/examples/``
.. _install-troubleshooting:
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 .``
.. _install-docker:
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 `__:
.. code:: sh
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:
.. code:: sh
docker pull wrenchproject/wrench:unstable
# or
docker run --rm -it wrenchproject/wrench:unstable /bin/bash
Additional tags are available for all WRENCH releases.