Installation

The installation instructions are tested against Ubuntu 20.04 for Python 3.7 and Python 3.8. The particular commands required for installation depend on your setup. The dependencies below are not always mandatory, if they are not used.

Requirements

Dependency

Minimum Version

Notes

Python

3.7

libpq

9.6

Required by psycopg2.

libfuse

2.9.9

If uchroot is used.

unionfs-fuse

1.0

If unionfs support is used.

slurm-llnl

18.08

If slurm support is used.

PostgreSQL

The library dependency libpq is always need right now, because we make use of psycopg2 features internally. It is planned to get rid of this dependency in the future.

FUSE

BenchBuild can make use of unionfs and libfuse. This is often used in conjunction with a tool named uchroot which provides legacy support for user-space containers. This will be obsolete as soon as podman/buildah based OCI container support is considered stable.

SLURM

The cluster management software slurm is only required by ‘name’, i.e., we have to be able to import the binaries as python objects in benchbuild. As an alternative to installing slurm on your machine, you can always provide symlinks to /bin/true to the commands sbatch and srun.

The minimum version should signal the minimum features set expected by BenchBuild when generating a slurm batch script.

Benchbuild

BenchBuild is released via pip and can be installed on your system as follows:

pip install benchbuild

If you want to isolate BenchBuild from the rest of your system packages, you can install it in a dedicated virtual environment.

virtualenv -ppython3 <venv_path>
source <venv_path>/bin/activate
pip3 install benchbuild

Bootstrapping

BenchBuild provides a bootstrap procedure that checks a few key binaries on your system and tries to assist you in installation of any necessary binaries.