Gå til indholdet

Bygning med CMake

Denne side beskriver proceduren fra hentning af FrontISTR-kildekoden til bygning og installation. Se Nødvendige og valgfrie afhængigheder for detaljer om afhængighedsbibliotekerne.

Hentning af kildekoden

FrontISTR-kildekoden kan hentes fra GitLab eller GitHub.

# GitLab
git clone https://gitlab.com/FrontISTR-Commons/FrontISTR.git

# GitHub (spejl)
git clone https://github.com/FrontISTR/FrontISTR.git

Byggeprocedure

FrontISTR forudsætter en out-of-source-bygning (bygning direkte i kildetræet er forbudt). Opret en build-mappe, og kør cmake i den.

cd FrontISTR
mkdir build
cd build
cmake -DCMAKE_INSTALL_PREFIX=/usr/local -DWITH_MPI=ON -DWITH_OPENMP=ON ..
make -j$(nproc)

Efter bygningen kan programmet køres direkte som /path/to/FrontISTR/build/fistr1/fistr1. For at installere det i systemstien (CMAKE_INSTALL_PREFIX) skal følgende kommando desuden køres.

cmake --build . --target install

CMake-optioner

Optioner, hvis standardværdi er angivet som "ON hvis fundet", aktiveres automatisk, når det tilsvarende bibliotek findes på systemet ved kørsel af cmake. De kan deaktiveres eksplicit ved at angive -DWITH_XXX=OFF.

Option Standard Beskrivelse
WITH_MPI ON Aktiverer MPI-parallelitet
WITH_OPENMP ON hvis fundet Aktiverer OpenMP-trådparallelitet
WITH_METIS ON hvis fundet Aktiverer domæneopdeling med METIS
METIS_VER_4 OFF Bruger METIS v4 (OFF bruger v5)
WITH_MUMPS ON hvis fundet Aktiverer den parallelle direkte MUMPS-løser
WITH_MKL ON hvis fundet Aktiverer Intel MKL (inklusive PARDISO)
WITH_LAPACK ON hvis fundet Aktiverer estimering af konditionstal med LAPACK
WITH_ML ON hvis fundet Aktiverer AMG-prækonditionering med Trilinos ML
WITH_REFINER ON hvis fundet Aktiverer meshforfining med REVOCAP_Refiner
WITH_REVOCAP ON hvis fundet Aktiverer koblet analyse med REVOCAP_Coupler
WITH_TOOLS ON Bygger de medfølgende værktøjer
WITH_DOC OFF Genererer API-dokumentation med Doxygen
WITH_NETCDF ON hvis fundet Aktiverer Exodus II-output (NetCDF)
WINDOWS OFF Aktiverer bygning til Windows
CMAKE_BUILD_TYPE RELEASE Byggetype (RELEASE / DEBUG)
CMAKE_INSTALL_PREFIX /usr/local Installationsmappe
DEBUG_EXTRA OFF Aktiverer kontrol for hukommelseslækager (for GCC, -fsanitize=address)

DEBUG-bygning

Når CMAKE_BUILD_TYPE=DEBUG angives, tilføjes følgende compiler-specifikke debugflag.

Compiler Yderligere flag
GCC -fbounds-check -fbacktrace
Intel -check uninit,bound -traceback
cmake -DCMAKE_BUILD_TYPE=DEBUG ..

Bygning med en GPU

Når NVIDIA HPC SDK (nvc/nvc++/nvfortran) angives som compiler, tilføjer CMake automatisk følgende flag.

Flag Beskrivelse
-acc Aktiverer OpenACC
-Minfo=accel Viser oplysninger om GPU-offloading under kompilering
-gpu=ccnative,mem:managed Registrerer automatisk GPU'en i byggemiljøet for at bestemme målet og bruger Unified Memory

Se Bygning med en GPU for den detaljerede procedure for GPU-bygninger med OpenACC.

AI-assisted translation May contain errors Official docs Status