Bouwen met CMake¶
Deze pagina beschrijft de procedure vanaf het verkrijgen van de FrontISTR-broncode tot en met bouwen en installeren. Zie Vereiste en optionele afhankelijkheden voor details over de afhankelijke bibliotheken.
De broncode verkrijgen¶
De FrontISTR-broncode kan worden verkregen via GitLab of GitHub.
# GitLab
git clone https://gitlab.com/FrontISTR-Commons/FrontISTR.git
# GitHub (mirror)
git clone https://github.com/FrontISTR/FrontISTR.git
Bouwprocedure¶
FrontISTR gaat uit van een out-of-source-build (rechtstreeks bouwen in de bronboom is verboden). Maak een map build en voer cmake daarin uit.
cd FrontISTR
mkdir build
cd build
cmake -DCMAKE_INSTALL_PREFIX=/usr/local -DWITH_MPI=ON -DWITH_OPENMP=ON ..
make -j$(nproc)
Na het bouwen kan het programma rechtstreeks als /path/to/FrontISTR/build/fistr1/fistr1 worden uitgevoerd. Voer daarnaast de volgende opdracht uit om het in het systeempad (CMAKE_INSTALL_PREFIX) te installeren.
CMake-opties¶
Opties waarvan de standaardwaarde als "ON indien gedetecteerd" is vermeld, worden automatisch ingeschakeld wanneer de bijbehorende bibliotheek op het systeem wordt gevonden wanneer cmake wordt uitgevoerd. Ze kunnen expliciet worden uitgeschakeld door -DWITH_XXX=OFF op te geven.
| Optie | Standaard | Beschrijving |
|---|---|---|
WITH_MPI |
ON |
Schakelt MPI-parallelisme in |
WITH_OPENMP |
ON indien gedetecteerd | Schakelt OpenMP-threadparallelisme in |
WITH_METIS |
ON indien gedetecteerd | Schakelt domeindecompositie met METIS in |
METIS_VER_4 |
OFF |
Gebruikt METIS v4 (OFF gebruikt v5) |
WITH_MUMPS |
ON indien gedetecteerd | Schakelt de parallelle directe MUMPS-solver in |
WITH_MKL |
ON indien gedetecteerd | Schakelt Intel MKL (inclusief PARDISO) in |
WITH_LAPACK |
ON indien gedetecteerd | Schakelt schatting van het conditiegetal met LAPACK in |
WITH_ML |
ON indien gedetecteerd | Schakelt AMG-preconditionering met Trilinos ML in |
WITH_REFINER |
ON indien gedetecteerd | Schakelt meshverfijning met REVOCAP_Refiner in |
WITH_REVOCAP |
ON indien gedetecteerd | Schakelt gekoppelde analyse met REVOCAP_Coupler in |
WITH_TOOLS |
ON |
Bouwt de meegeleverde hulpmiddelen |
WITH_DOC |
OFF |
Genereert API-documentatie met Doxygen |
WITH_NETCDF |
ON indien gedetecteerd | Schakelt Exodus II-uitvoer (NetCDF) in |
WINDOWS |
OFF |
Schakelt bouwen voor Windows in |
CMAKE_BUILD_TYPE |
RELEASE |
Bouwtype (RELEASE / DEBUG) |
CMAKE_INSTALL_PREFIX |
/usr/local |
Installatiemap |
DEBUG_EXTRA |
OFF |
Schakelt controle op geheugenlekken in (voor GCC: -fsanitize=address) |
DEBUG-build¶
Wanneer CMAKE_BUILD_TYPE=DEBUG is opgegeven, worden de volgende compilerspecifieke debugvlaggen toegevoegd.
| Compiler | Aanvullende vlaggen |
|---|---|
| GCC | -fbounds-check -fbacktrace |
| Intel | -check uninit,bound -traceback |
Bouwen met een GPU¶
Wanneer NVIDIA HPC SDK (nvc/nvc++/nvfortran) als compiler is opgegeven, voegt CMake automatisch de volgende vlaggen toe.
| Vlag | Beschrijving |
|---|---|
-acc |
Schakelt OpenACC in |
-Minfo=accel |
Toont tijdens het compileren informatie over GPU-offloading |
-gpu=ccnative,mem:managed |
Detecteert automatisch de GPU in de bouwomgeving om het doel te bepalen en gebruikt Unified Memory |
Zie Bouwen met een GPU voor gedetailleerde procedures voor GPU-builds met OpenACC.