- in general there is no need for the usage of the GNU compiler and OpenMPI as MPI implementation, as long as a proper C++ compiler as well as MPI implementation (CUDA-aware) are available and corresponding changes in the Makefile are done
Installing/Building the dependencies
MPI implementation
Multiple MPI implementations exist and can be used to execute milupHPC. However, the code was primarily tested with OpenMPI >= 4.0.
OpenMPI
library | licence | usage | link |
OpenMPI | BSD 3-Clause | compiler, MPI Implementation | open-mpi.org |
see also MPI_Versions.md
- if either MPI is not available or MPI is not CUDA-aware
- e.g. via
ompi_info -a | grep "\-with\-cuda"
- build, see e.g.
Boost
library | licence | usage | link |
Boost | Boost Software License 1.0 | config file parsing, C++ wrapper for MPI | boost.org |
<boost version>
e.g. 1_78_0
$ wget https://boostorg.jfrog.io/artifactory/main/release/1.78.0/source/boost_<boost version>.tar.gz
$ tar zxvf boost_<boost version>.tar.gz
$ cd boost_<boost version>
$ ./bootstrap.sh --with-libraries=all
$ vim project-config.jam
$ >> using mpi ;
$ ./b2
$ ./b2 install --prefix=/usr
HighFive
CUDA cub
- included in the CUDA Toolkit since CUDA 11.0
library | licence | usage | link |
CUDA cub | BSD 3-Clause "New" or "Revised" License | device wide parallel primitives | github.com/NVIDIA/cub |
Cxxopts
libconfig
<libconfig version>
e.g. 1.7.3
$ wget http://hyperrealm.github.io/libconfig/dist/libconfig-<libconfig version>.tar.gz
$ tar zxvf libconfig-<libconfig version>.tar.gz
$ ./configure --prefix=/usr
$ make
$ make install
HDF5
library | licence | usage | link |
HDF5 | HDF5 License (BSD-Style) | parallel HDF5 for I/O operations | hdf5group.org |
Postprocessing
For postprocessing purposes several scripts are available. Some of those scripts require the following.
Python
ffmpeg
$ sudo wget https://johnvansickle.com/ffmpeg/releases/ffmpeg-release-amd64-static.tar.xz
$ sudo wget https://johnvansickle.com/ffmpeg/releases/ffmpeg-release-amd64-static.tar.xz.md5
$ md5sum -c ffmpeg-release-amd64-static.tar.xz.md5
$ sudo tar xvf ffmpeg*.xz
$ cd ffmpeg-*-static
$ sudo ln -s "${PWD}/ffmpeg" /usr/local/bin/
$ sudo ln -s "${PWD}/ffprobe" /usr/local/bin/