Bygge med CMake¶
Denne siden beskriver fremgangsmåten fra henting av FrontISTR-kildekoden til bygging og installasjon. Se Obligatoriske og valgfrie avhengigheter for detaljer om avhengighetsbibliotekene.
Hente kildekoden¶
FrontISTR-kildekoden kan hentes fra GitLab eller GitHub.
# GitLab
git clone https://gitlab.com/FrontISTR-Commons/FrontISTR.git
# GitHub (speil)
git clone https://github.com/FrontISTR/FrontISTR.git
Byggeprosedyre¶
FrontISTR forutsetter bygging utenfor kildetreet (bygging direkte i kildetreet er forbudt). Opprett katalogen build, og kjør cmake i denne.
cd FrontISTR
mkdir build
cd build
cmake -DCMAKE_INSTALL_PREFIX=/usr/local -DWITH_MPI=ON -DWITH_OPENMP=ON ..
make -j$(nproc)
Etter byggingen kan programmet kjøres direkte som /path/to/FrontISTR/build/fistr1/fistr1. Hvis det skal installeres i systemstien (CMAKE_INSTALL_PREFIX), kjører du i tillegg følgende kommando.
CMake-alternativer¶
Alternativer der standardverdien er oppgitt som «PÅ hvis funnet», aktiveres automatisk når det tilsvarende biblioteket finnes på systemet når cmake kjøres. De kan deaktiveres eksplisitt ved å angi -DWITH_XXX=OFF.
| Alternativ | Standard | Beskrivelse |
|---|---|---|
WITH_MPI | ON | Aktiverer MPI-parallellisering |
WITH_OPENMP | PÅ hvis funnet | Aktiverer OpenMP-trådparallellisering |
WITH_METIS | PÅ hvis funnet | Aktiverer domenedekomponering med METIS |
METIS_VER_4 | OFF | Bruker METIS v4 (OFF bruker v5) |
WITH_MUMPS | PÅ hvis funnet | Aktiverer den parallelle direkteløseren MUMPS |
WITH_MKL | PÅ hvis funnet | Aktiverer Intel MKL (inkludert PARDISO) |
WITH_LAPACK | PÅ hvis funnet | Aktiverer estimering av kondisjonstall med LAPACK |
WITH_ML | PÅ hvis funnet | Aktiverer AMG-prekondisjonering med Trilinos ML |
WITH_REFINER | PÅ hvis funnet | Aktiverer nettforfining med REVOCAP_Refiner |
WITH_REVOCAP | PÅ hvis funnet | Aktiverer koblet analyse med REVOCAP_Coupler |
WITH_TOOLS | ON | Bygger de medfølgende verktøyene |
WITH_DOC | OFF | Genererer API-dokumentasjon med Doxygen |
WITH_NETCDF | PÅ hvis funnet | Aktiverer utdata i Exodus II-format (NetCDF) |
WINDOWS | OFF | Aktiverer bygging for Windows |
CMAKE_BUILD_TYPE | RELEASE | Byggetype (RELEASE / DEBUG) |
CMAKE_INSTALL_PREFIX | /usr/local | Installasjonskatalog |
DEBUG_EXTRA | OFF | Aktiverer kontroll av minnelekkasjer (for GCC, -fsanitize=address) |
DEBUG-bygg¶
Når CMAKE_BUILD_TYPE=DEBUG er angitt, legges følgende kompilatorspesifikke feilsøkingsflagg til.
| Kompilator | Tilleggsflagg |
|---|---|
| GCC | -fbounds-check -fbacktrace |
| Intel | -check uninit,bound -traceback |
Bygge med GPU¶
Når NVIDIA HPC SDK (nvc/nvc++/nvfortran) angis som kompilator, legger CMake automatisk til følgende flagg.
| Flagg | Beskrivelse |
|---|---|
-acc | Aktiverer OpenACC |
-Minfo=accel | Viser informasjon om GPU-avlasting under kompilering |
-gpu=ccnative,mem:managed | Oppdager automatisk GPU-en i byggemiljøet for å bestemme målarkitekturen og bruker Unified Memory |
Se Bygge med GPU for detaljerte prosedyrer for GPU-bygg med OpenACC.