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
  1. Building from source
    1. Clone the HDC project's repository:

      $: git clone ssh://git@git.iter.org/imas/hdc.git
    2. Build MDBM backend (optional)

        1. Clone the MDBM project's repository:

          $: git clone https://github.com/yahoo/mdbm
        2. Navigate to local MDBM directory:

          $: cd mdbm
        3. Set install prefix:

          In place of $PATH variable it is needed to pass relative path to MDBM directory, e.g.:  ~/projects/mdbm  

          $: MDBM_PREFIX=$(realpath $PATH)/install
          $: sed -i.bak "s|/tmp/install|$MDBM_PREFIX|g" Makefile.base
        4. Optionally disable tests (they need libcppunit, preferably):

          $: sed -i.bak '/SUBDIRS/s/test //' src/Makefile
        5. And finally build & install:

          $: make install
        6. Leave MDBM repository, but keep $MDBM_PREFIX variable, it will be needed later

          $: cd ..
    3. Navigate to local HDC directory:

      $: cd hdc
    4. Create new directory for build files:

      $: mkdir build
    5. Navigate to build directory:

      $: cd build
    6. Configure a build - two possibilities: with/without MDBM previously build:
       
      1. Building without previously installed MDBM module:

        $: cmake -DCMAKE_INSTALL_PREFIX=../install ..
      2. Building with previously installed MDBM module:
        If you have set up MDBM and you still have MDBM_PREFIX variable, then in order to use MDBM, please, append this to cmake 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 ..
    7. And finally build&install:

      $: make -j install
    8. After successful build, run tests please:

      $: make test

  • No labels