High Performance Plasticity  0.5.0
Installation

To install both the mandatory and recommended dependencies and build and install the library on Ubuntu 16.04 with root:

1 scripts/install_deps_xenial_sudo.sh
2 scripts/release.sh
3 cd build-release
4 sudo make install

Otherwise we provide more detailed instructions below.

Mandatory dependencies

The library cannot be built without these. Most of the mandatory dependencies are available from standard package managers. The others may require manual installation. We provide a script for installing both kinds under Ubuntu 16.04 with root at scripts/install_deps_mandatory_xenial_sudo.sh.

Easy

These are easy to install through package managers or installers on most platforms:

Requiring manual work

FFTW version 3.3.5 or greater

You may need to build your own FFTW if your package manager doesn't provide 3.3.5 and above.

Configure it like this (assuming you want a non-default path, otherwise leave off "--prefix=..."):

1 ./configure --prefix=/your/install/prefix \
2 --enable-shared \
3 --enable-mpi \
4 --enable-openmp \
5 --enable-threads

Optionally also include vector instructions available on your processor. E.g. if you have SSE2, AVX, AVX2 and FMA instructions append:

1 --enable-sse2 \
2 --enable-avx \
3 --enable-avx2 \
4 --enable-fma

HDF5 on older distributions

On older distributions, e.g. Ubuntu 14.04, there is no way to simultaneously install the serial and openmpi versions of HDF5. On newer distributions these are separated with a folder structure like this:

1 /usr/include/hdf5/serial
2 /usr/include/hdf5/openmpi

We assume this folder structure, so for older distributions you will need to create this yourself with custom HDF5 installs.

Recommended dependencies

These are required for important but non-critical functionality. We provide a script for installing these under Ubuntu 16.04 with root at scripts/install_deps_recommended_xenial_sudo.sh.

For the Python interface to the library

For batch runs, plotting and pure Python implementations

Optional dependencies

If you have an Nvidia GPU

  • CUDA Toolkit version 7.5 or higher.

For generating the documentation

Building

We recommend an out of source CMake build. The easiest is to run

1 scripts/release.sh

which will create the build in the directory build-release. This build script does the following steps, which you can do manually for a more precise configuration.

Make the build directory and enter it:

1 mkdir -p build-release
2 cd build-release

Configure the build

1 cmake .. -DCMAKE_BUILD_TYPE=Release

You may want to provide a custom installation directory, in which case instead run

1 cmake .. -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/my/custom/install/dir

Build:

1 make -j 8

where 8 represents the number of cores available for building.

Installing

Enter the build directory, which will be "build-release" if you followed the above instructions or executed scripts/release.sh. Run

1 make install

optionally with root if the install prefix requires root access.

Custom build options

At the configuration step there are a number of options available, which are automatically selected based on your system's attributes but may be overridden. The options are all preceded by HPP_ and can be overriden by adding

1 -DHPP_SETTING_NAME=SETTING_VALUE

to the CMake command, or modified using the CMake gui.

What to build

  • HPP_BUILD_PYTHON (OFF/ON): build the Python interface to the library. Default depends on if you have Python and Boost on your system.
  • HPP_USE_CUDA (OFF/ON): build the GPU-accelerated functionality for the library. Default depends on whether or not you have CUDA installed on your system.

Developer options

  • HPP_SHOW_PTX (OFF/ON): display the PTX info (register counts, shared memory usage etc.) while building CUDA source files. Default is OFF.
  • HPP_CUDA_ARCH_LIST: a semi-colon separated list of CUDA architectures to build SASS for. Default is the architectures currently attached to your system.