Bygga med CMake¶
Den här sidan beskriver proceduren från hämtning av FrontISTR:s källkod till byggning och installation. Mer information om beroendebiblioteken finns i Obligatoriska och valfria beroenden.
Hämta källkoden¶
FrontISTR:s källkod kan hämtas från GitLab eller GitHub.
# GitLab
git clone https://gitlab.com/FrontISTR-Commons/FrontISTR.git
# GitHub (mirror)
git clone https://github.com/FrontISTR/FrontISTR.git
Byggprocedur¶
FrontISTR förutsätter en out-of-source-build (det är förbjudet att bygga direkt i källkodsträdet). Skapa katalogen build och 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 byggningen kan programmet köras direkt som /path/to/FrontISTR/build/fistr1/fistr1. Kör dessutom följande kommando om det ska installeras i systemsökvägen (CMAKE_INSTALL_PREFIX).
CMake-alternativ¶
Alternativ vars standardvärde anges som "ON om detekterad" aktiveras automatiskt när motsvarande bibliotek hittas i systemet när cmake körs. De kan inaktiveras explicit genom att ange -DWITH_XXX=OFF.
| Alternativ | Standard | Beskrivning |
|---|---|---|
WITH_MPI |
ON |
Aktiverar MPI-parallellism |
WITH_OPENMP |
ON om detekterad | Aktiverar trådparallellism med OpenMP |
WITH_METIS |
ON om detekterad | Aktiverar domänuppdelning med METIS |
METIS_VER_4 |
OFF |
Använder METIS v4 (OFF använder v5) |
WITH_MUMPS |
ON om detekterad | Aktiverar den parallella direktlösaren MUMPS |
WITH_MKL |
ON om detekterad | Aktiverar Intel MKL (inklusive PARDISO) |
WITH_LAPACK |
ON om detekterad | Aktiverar uppskattning av konditionstal med LAPACK |
WITH_ML |
ON om detekterad | Aktiverar AMG-förkonditionering med Trilinos ML |
WITH_REFINER |
ON om detekterad | Aktiverar nätförfining med REVOCAP_Refiner |
WITH_REVOCAP |
ON om detekterad | Aktiverar kopplad analys med REVOCAP_Coupler |
WITH_TOOLS |
ON |
Bygger de medföljande verktygen |
WITH_DOC |
OFF |
Genererar API-dokumentation med Doxygen |
WITH_NETCDF |
ON om detekterad | Aktiverar Exodus II-utdata (NetCDF) |
WINDOWS |
OFF |
Aktiverar byggning för Windows |
CMAKE_BUILD_TYPE |
RELEASE |
Byggtyp (RELEASE / DEBUG) |
CMAKE_INSTALL_PREFIX |
/usr/local |
Installationskatalog |
DEBUG_EXTRA |
OFF |
Aktiverar kontroll av minnesläckor (för GCC, -fsanitize=address) |
DEBUG-build¶
När CMAKE_BUILD_TYPE=DEBUG anges läggs följande kompilatorspecifika debugflaggor till.
| Kompilator | Ytterligare flaggor |
|---|---|
| GCC | -fbounds-check -fbacktrace |
| Intel | -check uninit,bound -traceback |
Bygga med GPU¶
När NVIDIA HPC SDK (nvc/nvc++/nvfortran) anges som kompilator lägger CMake automatiskt till följande flaggor.
| Flagga | Beskrivning |
|---|---|
-acc |
Aktiverar OpenACC |
-Minfo=accel |
Visar information om GPU-offloading vid kompilering |
-gpu=ccnative,mem:managed |
Detekterar automatiskt GPU:n i byggmiljön för att fastställa målet och använder Unified Memory |
Detaljerade procedurer för GPU-byggen med OpenACC finns i Bygga med GPU.