Compilació amb CMake¶
Aquesta pàgina descriu el procediment des de l'obtenció del codi font de FrontISTR fins a la compilació i la instal·lació. Per obtenir detalls sobre les biblioteques de dependència, consulteu Dependències obligatòries i opcionals.
Obtenció del codi font¶
El codi font de FrontISTR es pot obtenir de GitLab o GitHub.
# GitLab
git clone https://gitlab.com/FrontISTR-Commons/FrontISTR.git
# GitHub (mirror)
git clone https://github.com/FrontISTR/FrontISTR.git
Procediment de compilació¶
FrontISTR pressuposa una compilació fora de l'arbre de fonts (està prohibit compilar directament dins de l'arbre de fonts). Creeu un directori build i executeu cmake a dins.
cd FrontISTR
mkdir build
cd build
cmake -DCMAKE_INSTALL_PREFIX=/usr/local -DWITH_MPI=ON -DWITH_OPENMP=ON ..
make -j$(nproc)
Després de la compilació, es pot executar directament com /path/to/FrontISTR/build/fistr1/fistr1. Per instal·lar-lo al camí del sistema (CMAKE_INSTALL_PREFIX), executeu també l'ordre següent.
Opcions de CMake¶
Les opcions el valor per defecte de les quals figura com "ON si es detecta" s'habiliten automàticament quan es troba la biblioteca corresponent al sistema en executar cmake. Es poden deshabilitar explícitament especificant -DWITH_XXX=OFF.
| Opció | Valor per defecte | Descripció |
|---|---|---|
WITH_MPI | ON | Habilita el paral·lelisme MPI |
WITH_OPENMP | ON si es detecta | Habilita el paral·lelisme per fils OpenMP |
WITH_METIS | ON si es detecta | Habilita la descomposició de dominis mitjançant METIS |
METIS_VER_4 | OFF | Utilitza METIS v4 (OFF utilitza v5) |
WITH_MUMPS | ON si es detecta | Habilita el solucionador directe paral·lel MUMPS |
WITH_MKL | ON si es detecta | Habilita Intel MKL (inclòs PARDISO) |
WITH_LAPACK | ON si es detecta | Habilita l'estimació del nombre de condició mitjançant LAPACK |
WITH_ML | ON si es detecta | Habilita el precondicionament AMG mitjançant Trilinos ML |
WITH_REFINER | ON si es detecta | Habilita el refinament de malla mitjançant REVOCAP_Refiner |
WITH_REVOCAP | ON si es detecta | Habilita l'anàlisi acoblada mitjançant REVOCAP_Coupler |
WITH_TOOLS | ON | Compila les eines incloses |
WITH_DOC | OFF | Genera documentació de l'API amb Doxygen |
WITH_NETCDF | ON si es detecta | Habilita la sortida Exodus II (NetCDF) |
WINDOWS | OFF | Habilita la compilació per a Windows |
CMAKE_BUILD_TYPE | RELEASE | Tipus de compilació (RELEASE / DEBUG) |
CMAKE_INSTALL_PREFIX | /usr/local | Directori d'instal·lació |
DEBUG_EXTRA | OFF | Habilita la comprovació de fuites de memòria (per a GCC, -fsanitize=address) |
Compilació DEBUG¶
Quan s'especifica CMAKE_BUILD_TYPE=DEBUG, s'afegeixen els indicadors de depuració següents, específics del compilador.
| Compilador | Indicadors addicionals |
|---|---|
| GCC | -fbounds-check -fbacktrace |
| Intel | -check uninit,bound -traceback |
Compilació amb GPU¶
Quan s'especifica NVIDIA HPC SDK (nvc/nvc++/nvfortran) com a compilador, CMake afegeix automàticament els indicadors següents.
| Indicador | Descripció |
|---|---|
-acc | Habilita OpenACC |
-Minfo=accel | Mostra informació sobre la descàrrega a GPU durant la compilació |
-gpu=ccnative,mem:managed | Detecta automàticament la GPU de l'entorn de compilació per determinar l'objectiu i utilitza memòria unificada |
Per als procediments detallats de compilació amb GPU mitjançant OpenACC, consulteu Compilació amb GPU.