-
Antoine Cyril David Hoffmann authoredAntoine Cyril David Hoffmann authored
INSTALLATION.txt 1.94 KiB
Cloning the code :
1. ssh-keygen to generate a public key (press enter to the questions)
2. copy .ssh/id_rsa.pub in the ssh public key list of c4science with your account
3. git clone ssh://git@c4science.ch/source/HeLaZ.git
Installing librairies :
requirements : intel mpi compiler
fftw3-mpi :
1. download .tar.gz on download page http://www.fftw.org/download.html
2. move it to the lib folder and unzip it with tar -zxvf fftw-3.x.x.tar.gz
3. cd into the folder created ffw-3.x.x/
5. use pwd to find the path of the current folder and use it as the prefix in "CURRENT PATH" so all the lib, headers and bin will be installed in this folder (prevents problem with root access)
4. ./configure --enable-mpi --prefix="CURRENT PATH"
5. make
6. make install (if problems, do make distclean before retrying)
7. mv lib64 lib in the fftw3 folder so the HeLaZ makefile finds it
FM Multiple-Precision Software Package:
0. ??? (copy paste...)
hdf5:
1. download latest release .tar.gz here https://www.hdfgroup.org/downloads/hdf5/source-code/
2. mv it to the lib/ and tar -zxvf *.tar.gz
3. cd the hdf5 folder then we follow instructions from futils.pdf
export F9X=mpif90
export CC=mpicc
VERSION=1.12.0
PREFIX=$HOME/lib/hdf5-$VERSION
./configure --prefix=$PREFIX \
--enable-fortran \
--enable-parallel \
--disable-shared \
2>&1 | tee configure.log
zlib:
1. download https://www.zlib.net/ by clicking "Pick a mirror" (sourceforge.net)
2. inside zlib folder : ./configure then make
futils:
1. Go to futils c4science page > https://c4science.ch/diffusion/7804/
2. clone it in lib/
3. go to futils/src/ and modify the Makefile by replacing $(OPT) by -O3 in F90FLAGS and LIBS, moreover change F90 = mpif90 to mpiifort
4. make lib
5. make install
Compilation of HeLaZ
1. ensure that HeLaZ/local/dirs.inc contains the right paths to the librairies (Be careful of fftw name)
2. make install
3. (TODO: test script for installation check)
4. next times, for compilation, make is sufficient