Note
For now, it only covers the installation of the HDC module on a GateWay cluster with the GNU GCC compiler.
1.1. Prerequisites
To build HDC, you will need:
- c++11 compliant compiler (tested with intelstudio>=2018 and gcc>=5.0)
- gfortran >= 4.9
- Boost >= 1.48
- CMake >= 3.3
- Doxygen for documentation building
- Cython > 0.23 (there is some parsing error in 0.23)
Optionally it can use:
- Python > 3.4 (Python HDC bindings "pyHCD" and hdc-binder support)
- MATLAB > 2018a (MATLAB mex interface)
- Yahoo MDBM (recommended storage plugin working within shared memory)
- Redis + libhiredis-dev (storage plugin working within distributed memory)
- HDF5 devel libraries ((de)serialization, tested with 1.8 and 1.10)
- libs3 ((de)serialization plugin)
- flatbuffers ((de)serialization plugin)
Load modules (GCC):
module load cmake/3.5.2 module load itm-gcc/6.1.0 module load zlib/1.2.8--gnu--6.1.0 szip/2.1--gnu--6.1.0 module load hdf5/1.8.17--gnu--6.1.0 module load openmpi/1.10.7--gnu--6.1.0 module load boost/1.61.0--gnu--6.1.0
- Building from source
Clone the HDC project's repository:
$: git clone ssh://git@git.iter.org/imas/hdc.git
Build MDBM backend (optional)
Navigate to local HDC directory:
$: cd hdc
Create new directory for build files:
$: mkdir build
Navigate to build directory:
$: cd build
- Configure a build - two possibilities: with/without MDBM previously build:
Building without previously installed MDBM module:
$: cmake -DCMAKE_INSTALL_PREFIX=../install ..
Building with previously installed MDBM module:
If you have set up MDBM and you still haveMDBM_PREFIX
variable, then in order to use MDBM, please, append this tocmake
command line:-DMDBM_LIBRARY=$MDBM_PREFIX/lib64 -DMDBM_INCLUDE_DIR=$MDBM_PREFIX/include
$: cmake -DCMAKE_INSTALL_PREFIX=../install -DMDBM_LIBRARY=$MDBM_PREFIX/lib64/libmdbm.so -DMDBM_INCLUDE_DIR=$MDBM_PREFIX/include ..
And finally build&install:
$: make -j install
After successful build, run tests please:
$: make test