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-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 |
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.