sunfluidh:makefile_configuration
Différences
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentesRévision précédenteProchaine révision | Révision précédente | ||
sunfluidh:makefile_configuration [2019/06/13 17:53] – yann | sunfluidh:makefile_configuration [2021/04/30 18:47] (Version actuelle) – [Compiler options] yann | ||
---|---|---|---|
Ligne 1: | Ligne 1: | ||
===== How to configure the makefile ===== | ===== How to configure the makefile ===== | ||
+ | [[sunfluidh: | ||
+ | ----- | ||
+ | ==== Fortran compilers ==== | ||
The code sunfluidh is programmed in fortran 95 and 2003. | The code sunfluidh is programmed in fortran 95 and 2003. | ||
- | A makefile (named makefile) is present in the directory ' | + | A makefile (named makefile) is present in the directory ' |
- | Some examples | + | * the intel compiler (ifort) |
- | | + | * the GNU compiler |
- | * pgf95 (the PGI compiler) | + | |
- | | + | |
- | | + | |
Common information on fortran compiler' | Common information on fortran compiler' | ||
- | The code works with some specific blocks of instructions that must be selected during the compilation in respect with the configuration of the simulation (2D or 3D, parallel calculation, | ||
- | | + | ==== Makefile setup ==== |
- | | + | |
- | | + | |
- | | + | |
- | + | ||
- | The available labels in the code sunfluidh are : | + | |
- | * DIM2D or DIM3D associated to the 2D or 3D configuration. One of these labels must be necessary present for the compilation. | + | |
- | * MPI : MPI parallelisation (based on the domain decomposition approach). The compilation must be performed with the mpi wrapper instead of the usual compiler command (for instance mpiifort in place of ifort, mpif90 in place of pgif95, mpifort in place of gfortran, ...). Please contact the system administrator if you have any doubt. | + | |
- | * OPENMP : The OpenMP parallelization of the code is performed during the compilation. Don't forget to set also the usual OpenMP option for the fortran compiler : -fopenmp with gfortran, -openmp with ifort, -mp with pgf95, -qsmp=omp with xlf95. | + | |
- | * SHARED_DISK : This label is used in order to handle some backup/ | + | |
- | * HYPRE : HYPRE Library (with MPI) | + | |
- | These labels must be placed in the variable CODE_CONFIG (see examples | + | You have to set up the makefile |
+ | * Compiler options | ||
+ | * Labels for the code configuration | ||
- | Set the different variables related to the paths in order to access | + | Using proposed set of options make easier |
- | * For LAPACK : PATH_LAPACK= ... | + | ==== Compiler options |
- | * For SCALAPACK : PATH_SCALAPACK= ... | + | |
- | * For HYPRE : PATH_HYPRE= ... ; INCLUDE_HYPRE=... | + | |
- | * etc ... | + | |
- | You can define | + | These parameters define the compiler and compilation options used. |
+ | * COMPILER_TYPE=IFORT or GNU : compiler choice between ifort and gfortran. Default value is GNU | ||
+ | * LEVEL_OPT= DEBUG, OPT_O2, OPT_O3 : select the level of compilation, | ||
+ | * SKYLAKE_OPT=YES or NO : enable (or not) some additional optimization options for skylake Intel architecture (Intel CPU). Options are : -axAVX, | ||
+ | * REPORT_OPT=NO : Create a report about compiler' | ||
+ | * AMD_OPT=YES or NO : enable (or not) some additional optimization options for AMD architecture (Intel CPU). Options are : -mavx2. Default value is NO | ||
+ | * ADD_USER_OPT= .... . The user can add its own compiler' | ||
+ | * HOSTLIBS=LOCAL, | ||
+ | * LOCAL (the default value) : the access path to external libraries is implicitly defined in the Operating System | ||
+ | * MODULE : the access path to external | ||
+ | * ' | ||
+ | |||
+ | ==== Labels for the code configuration ==== | ||
+ | |||
+ | In order to configure the code in the suitable form (2D, 3D, parallelisation mode,...), labels are used to set the variable " | ||
+ | So, this variable must just be set as CODE_CONFIG= LABEL1 LABEL2 ... | ||
+ | |||
+ | The common labels to use are : | ||
+ | * -DDIM3D | ||
+ | * -DDIM2D | ||
+ | * -DMPI : for MPI parallelisation with domain docomposition approach | ||
+ | * -DOPENMP | ||
+ | * -DSHARED_DISK : files are stored on disks shared by all processors (this default option must always be enable if possible) | ||
+ | * -DNOLIBS | ||
+ | |||
+ | Some other labels are available and can be used in specific cases | ||
+ | |||
+ | * -DHYPRE | ||
+ | | ||
+ | * -DGET_MPI_GRAPHICAL_CONFIG : only to build the file that describes the MPI subdomain distribution according to a MPI graphical topology | ||
+ | |||
+ | The default configuration proposed in the makefile is : CODE_CONFIG= -DSHARED_DISK -DDIM2D | ||
+ | [[sunfluidh: |
sunfluidh/makefile_configuration.1560441207.txt.gz · Dernière modification : 2019/06/13 17:53 de yann