For Debian and Red Hat based systems there are packages available, or you can check out the latest version from GitHUB. The headers have no other dependencies than an C++17 capable compiler. However H5CPP often installed along a linear algebra library full list is here
Often the simplest is to use the one provided with your computer, however it may be outdated, for best result download and compile the latest version from The HDFGroup website or use the provided binary packages. The minimum version requirements for HDF5 CAPI is set to v1.10.2.
LLVM 7.0.0 and Clang is required to compile and run the
h5cpp source code transformation tool. Be certain there is 50GB free disk and 16GB memory space on the system you compiling to prevent spurious error messages in the compile or linking phase. AWS EC2 m3.2xlarge instance has suitable local disk and memory space.
git clone https://git.llvm.org/git/llvm.git/ cd llvm/tools git clone https://git.llvm.org/git/clang.git/ # begin-optional cd ../projects git clone https://git.llvm.org/git/openmp.git/ git clone https://git.llvm.org/git/libcxx.git/ git clone https://git.llvm.org/git/libcxxabi.git/ # end-optional cd ../../ && mkdir build && cd build 3.0 (quilt)cmake -DCMAKE_INSTALL_PREFIX=/usr/local CMAKE_BUILD_TYPE=MinSizeRel -DLLVM_TARGETS_TO_BUILD=X86 -DLLVM_USE_LINKER=gold ../llvm nohup make -j8& sudo make install build-essential gcc-8 g++-8
Parallel FS and MPI#
OrangeFS is a good FSF alternative to commercial solutions, and is a requirement for Parallel HDF5.
sudo apt-get install -y gcc flex bison libssl-dev libdb-dev linux-source perl make autoconf linux-headers-`uname -r` zip openssl automake autoconf patch g++ libattr1-dev ./configure --with-kernel=/usr/src/linux-headers-$(uname -r) --prefix=/usr/local --enable-shared make -j4 && sudo make install make kmod # to build kernel module sudo make kmod_install # load module sudo insmod /lib/modules/4.4.0-1062-aws/kernel/fs/pvfs2/pvfs2.ko
./autogen.pl && ./configure --prefix=/usr/local --with-slurm --with-pmix=/usr/local --enable-mpi1-compatibility --with-libevent=/usr/local --with-hwloc=/usr/local --with-ompi-pmix-rte
The best practice is to install all linear algebra systems from sources, starting with BLAS/LAPACK: INTEL MKL | AMD CML | ATLAS | openBLAS | NETLIB Then following with your C++ LinearAlgebra/scientific library. Be sure that the optimized BLAS/LAPACK is picked up during configuration. In addition to standard functionality you may be interested in SuperLU, Metis, Pardiso, SuiteSparse, UmfPack, Cholmod.
download intel MKL from their website, and follow instructions, don't forget to set the environment variables by adding
source /opt/intel/bin/compilervars.sh intel64 to