Software prerequisites

The following software packages are required for building HALMD. For an automated installation procedure, refer to the next section, Automatic installation. A detailed step-by-step guide for manual installation is given in section Manual installation.

Build environment

  • a C++ compiler with sufficient C++11 support, e.g., GCC ≥ 4.6

    HALMD makes extensive use of C++11 features. Instructions for a semi-automated build of GCC are given in Automatic installation.

  • CMake ≥ 2.8.12

    The build process of HALMD depends on CMake, a cross-platform, open-source build system.


    CMake ≤ 3.0 may have problems locating a CUDA host compiler (especially if you use nvcc.profile to specify a compiler directory). If you experience errors like “-m64: No such file or directory” when compiling cuda sources, the problem can be solved by manually setting the CMake variable CUDA_HOST_COMPILER to the full path of the desired host compiler. CMake ≥ 3.1 fixes this problem.

    The problem does not occur for builds without GPU acceleration.

  • NVIDIA CUDA toolkit ≥ 5.0

    Please refer to the installation instructions shipped with the toolkit. The toolkit is not needed for builds without GPU acceleration.

Third-party libraries

  • Boost C++ Libraries ≥ 1.55.0

    The C++ part of HALMD uses libraries in the Boost C++ collection.


    System installations of the Boost C++ Libraries can not be used due to an ABI incompatibility (C++98 vs. C++11). For instructions how to build Boost C++ with the C++11 ABI, see Automatic installation.

  • Lua interpreter ≥ 5.1 or Lua Just-In-Time compiler ≥ 2.0


    We recommend Lua 5.2 or later. The Lua JIT compiler is recommended for advanced simulation scripts containing loops, user-defined correlation functions, etc.

    A simulation with HALMD is setup and configured by means of the Lua scripting language. The fast and lightweight Lua interpreter is embedded in the HALMD executable.

  • HDF5 C++ Library ≥ 1.8

    “HDF5 is a data model, library, and file format for storing and managing data. It supports an unlimited variety of datatypes, and is designed for flexible and efficient I/O and for high volume and complex data.”


Documentation is generated optionally in HTML and PDF format if these prerequisites are met:

  • Sphinx documentation generator ≥ 1.1

    “Sphinx is a tool that makes it easy to create intelligent and beautiful documentation.”

  • LaTeX including pdflatex and dvipng

  • graphviz