The following guidelines will help you to build Notus on your local machine or your cluster of choice.
$ cd /home/$USER/notus
Use the script build_notus.sh
:
By defaults, Notus is built with debug option (code is not optimized for speed), with Hypre and ADIOS third party libraries.
Some system architectures are set to facilitate build process. For instance, to build on a workstation with GCC compilers and OpenMPI, use the following command:
./build_notus.sh --linux
The Notus executable will be placed at the root of the Notus project. To build with an Intel compilers suite:
./build_notus.sh --intel
You can build quicker by setting the number of threads used during the build process. 4 threads are used with the following command:
./build_notus.sh -j 4 --linux
Build process can also be relative to a specific supercomputer environment:
./build_notus.sh -j 4 --irene-rome ./build_notus.sh -j 4 --curta-gnu ./build_notus.sh -j 4 --occigen
You can use optional third party libraries (see Build Notus third-party libraries section to build them). For instance, to use MUMPS solver library:
./build_notus.sh -mj 4 --linux
Finally, you may need to clean build directory before building Notus:
./build_notus.sh -cmj 4 --linux
The full list of build_notus.sh
script options are:
./build_notus.sh -h Usage : build_notus.sh [OPTIONS] -h Print usage == build options" -c Clean the build directory" -j NUMBER Set the number of compilation jobs (default: 1) -o Use OpenMP (default: false) -r Release build (default: debug) -u Build unit tests (default: false) --unpurify Transform 'pure' subroutines to 'impure' for debug purpose" --with-score-p Use Score-P measurement infrastructure (only with gcc compilers) == third party library options -a use all libraries (except REFPROP) (default: false) -d use HDF5 library (default: false) -l use LIS solvers (default: false) -m use MUMPS solver (default: false) -p use REFPROP library (default: false) -s use ADIOS2 library (default: false) -t use T3PIO library (default: false) --third-party-lib-dir DIRECTORY set the third party library directory (default $HOME/usr) == compilers and mpi options --cc C_COMPILER set the C compiler (default gcc; option icc) --fc FORTAN_COMPILER set the Fortran compiler (default gfortran; option ifort) --mpicc MPI_C_WRAPPER set the C compiler (default mpicc; option mpiicc) --mpifc MPI_FORTRAN_WRAPPER set the Fortran compiler (default mpif90; option mpiifort) --compilers COMPILER_COLLECTION set the compiler collection (default gcc; option intel) --mpi MPI_LIBRARY set the mpi library (default openmpi; options: intelmpi) == system options (shortcut for compilers and mpi options) --linux Workstation system GCC compilers, openmpi library --intel Intel system Intel compilers, Intel MPI library --curta Curta supercomputer Compiler and MPI version may vary with 'notus_third_party' module --irene-rome Irene-rome supercomputer Intel compilers, openmpi library --irene-skylake Irene-skylake supercomputer Intel compilers, openmpi library --jean-zay Jean Zay supercomputer Intel compilers, Intel MPI library --occigen Occigen supercomputer Intel compilers, Intel MPI library