Ga naar inhoud

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 --build . --target install

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
cmake -DCMAKE_BUILD_TYPE=DEBUG ..

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.

AI-assisted translation May contain errors Official docs Status