Gå till innehållet

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

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

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.

AI-assisted translation May contain errors Official docs Status