Installing hophop

To compile and run hophop, you need the following requirements:

Requirements

The following libraries and software is required to compile successfully:

  • C compiler
    Any compiler fulfilling the C99 standard is suitable. hophop was tested with Gnu Compiler Collection and LLVM CLang (with no significant speed differences).
  • CMake > 3.0
    We use CMake as a build system, so you need to have it installed.
  • Gnu Scientific Library (GSL)
    The gnu scientific library provides many mathematical algorithms, functions, constants and so on. It is heavily used within the program, mainly for pseudo random number generation and probability distributions.
  • OpenMP
    Required for shared-memory parallelization. This is usually shipped with the compiler.
  • Lis >= 1.4.43 (optional, but recommended!)
    Lis (Library of Iterative Solvers for linear systems) is used as a solver for the balance equations method. When it is not found, the mgmres solver is used, the source code of which is shipped with hophop. However, we recommend using Lis where possible.

Note

You may find some of the requirements in the repositories of your Linux distribution, at least the compiler, CMake, and OpenMP. On Debian or Ubuntu Linux, for example, you can simply run the following command to download and install some the requirements:

$ apt-get install build-essential cmake

Downloading the code

Please either clone the master branch from hophop’s Github repository or download one of the stable releases from hophop’s Release page.

Building

With all the requirements in standard (i.e., discoverable by CMake) paths, you may be lucky and the following works instantly:

$ tar xzf hophop-2.4.tar.gz
$ mkdir build_hophop
$ cd build_hophop
$ cmake ../hophop-2.4
$ make
$ make install

Tip

You can change the install location with the CMAKE_INSTALL_PREFIX command line variable:

$ cmake ../hophop-2.4 -DCMAKE_INSTALL_PREFIX=/usr/local

When CMake can’t figure out the locations of Lis and GSL, you can specify the following variables to help searching:

  • LIS_ROOT_DIR=/path/to/lis/location
  • GSL_ROOT_DIR=/path/to/gsl/location

The locations must contain an include/ and lib (or lib64) folder, where the headers and libraries are located. Example:

$ cmake ../hophop-2.4 -DLIS_ROOT_DIR=/opt/lis/ -DGSL_ROOT_DIR=/opt/gsl
$ make
$ make install

Tip

You can save custom library locations in the binary’s rpath, so they are found without requiring LD_LIBRARY_PATH to be set.

$ cmake ../hophop-2.4 -DCMAKE_EXE_LINKER_FLAGS='-Wl,-rpath,/opt/lis/lib:/opt/gsl/lib'

Running hophop

When everything is built correctly, you can try running hophop by simply typing

$ /path/to/install/location/hophop

It will use some default parameters to run.

Tip

When you get some library not found errors, set the LD_LIBRARY_PATH variable to the location of the libraries:

$ LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/opt/lis/lib:/opt/gsl/lib \
     /path/to/install/location/hophop