... | ... | @@ -138,15 +138,29 @@ ccc_affinity <job_id> |
|
|
|
|
|
### Modules
|
|
|
|
|
|
Note that we have to use serial HDF5 here because the C++ interface is not provided by parallel HDF5 (could be a problem for on the fly velociraptor).
|
|
|
Assuming we're using a recent copy of Velociraptor which does not need the HDF5 C++ interface:
|
|
|
|
|
|
```
|
|
|
module purge
|
|
|
module load intel/17.0.6.256
|
|
|
module load intel/18.0.3.222
|
|
|
module load flavor/openmpi/thread-multiple mpi/openmpi/2.0.4
|
|
|
module load flavor/hdf5/serial hdf5/1.10.1
|
|
|
module load flavor/hdf5/parallel hdf5/1.10.1
|
|
|
module load gsl/2.1
|
|
|
module load cmake/3.13.3
|
|
|
|
|
|
# Need some hints to find bits of openmpi
|
|
|
export LIBS="-lopen-rte -lopen-pal"
|
|
|
|
|
|
# Make sure to use std libs from latest icc (hdf5 etc are built with older version)
|
|
|
export LDFLAGS="-L${MPI_ROOT}/lib/ -L${C_INTEL_ROOT}/lib/intel64/"
|
|
|
|
|
|
# Need to use C++ libs from a newer gcc than the default
|
|
|
GCC_PATH=/ccc/products/gcc-7.3.0/system/default/
|
|
|
export PATH="${GCC_PATH}/bin/:${PATH}"
|
|
|
export CPPFLAGS="-I{GCC_PATH}/include/"
|
|
|
export LDFLAGS="${LDFLAGS} -L${GCC_PATH}/lib64/ -Wl,-rpath=${GCC_PATH}/lib64/"
|
|
|
```
|
|
|
|
|
|
### CMake configuration
|
|
|
|
|
|
It seems to be fairly difficult to stop it picking up bits of GSL from /usr/lib/. Also need to explicitly specify the compiler even if the compiler module is loaded. This compiles and appears to pick up libraries from the right places:
|
... | ... | @@ -154,14 +168,18 @@ It seems to be fairly difficult to stop it picking up bits of GSL from /usr/lib/ |
|
|
mkdir build
|
|
|
cd build
|
|
|
cmake .. \
|
|
|
-DCMAKE_SKIP_BUILD_RPATH=FALSE \
|
|
|
-DCMAKE_BUILD_WITH_INSTALL_RPATH=FALSE \
|
|
|
-DCMAKE_BUILD_TYPE=Release \
|
|
|
-DCMAKE_C_COMPILER=icc \
|
|
|
-DCMAKE_CXX_COMPILER=icpc \
|
|
|
-DHDF5_CXX_COMPILER_EXECUTABLE=${HDF5_ROOT}/bin/h5c++ \
|
|
|
-DGSL_ROOT_DIR=${GSL_ROOT} \
|
|
|
-DGSL_INCLUDE_DIR=${GSL_ROOT}/include/ \
|
|
|
-DGSL_LIBRARY=${GSL_ROOT}/lib/libgsl.so \
|
|
|
-DGSL_LIBRARY_DEBUG=${GSL_ROOT}/lib/libgsl.so \
|
|
|
-DGSL_CBLAS_LIBRARY=${GSL_ROOT}/lib/libgslcblas.so \
|
|
|
-DGSL_CBLAS_LIBRARY_DEBUG=${GSL_ROOT}/lib/libgslcblas.so
|
|
|
-DGSL_CBLAS_LIBRARY_DEBUG=${GSL_ROOT}/lib/libgslcblas.so \
|
|
|
-DNBODY_USE_HYDRO=ON \
|
|
|
-DVR_USE_HYDRO=ON
|
|
|
make
|
|
|
``` |
|
|
\ No newline at end of file |