Gå till innehållet

Translation update pending

The Swedish translation may be out of date because the Japanese source has changed. The existing translation remains available while it is being updated.

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
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)
NVHPC_NO_ACC OFF Inaktiverar OpenACC när NVIDIA HPC SDK-kompilatorerna används och bygger CPU-versionen

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

När -DNVHPC_NO_ACC=ON anges läggs dessa flaggor inte till.

Detaljerade procedurer för GPU-byggen med OpenACC finns i Bygga med GPU.