Build mit CMake¶
Diese Seite beschreibt den Ablauf vom Abrufen des FrontISTR-Quellcodes bis zum Build und zur Installation. Einzelheiten zu den Abhängigkeiten finden Sie unter Erforderliche und optionale Abhängigkeiten.
Quellcode abrufen¶
Der FrontISTR-Quellcode kann von GitLab oder GitHub abgerufen werden.
# GitLab
git clone https://gitlab.com/FrontISTR-Commons/FrontISTR.git
# GitHub (Mirror)
git clone https://github.com/FrontISTR/FrontISTR.git
Build-Ablauf¶
FrontISTR setzt einen Out-of-Source-Build voraus (ein Build direkt im Quellbaum ist nicht zulässig). Erstellen Sie ein Verzeichnis build und führen Sie cmake darin aus.
cd FrontISTR
mkdir build
cd build
cmake -DCMAKE_INSTALL_PREFIX=/usr/local -DWITH_MPI=ON -DWITH_OPENMP=ON ..
make -j$(nproc)
Nach dem Build kann FrontISTR direkt als /path/to/FrontISTR/build/fistr1/fistr1 ausgeführt werden. Für die Installation in den Systempfad (CMAKE_INSTALL_PREFIX) führen Sie zusätzlich den folgenden Befehl aus.
CMake-Optionen¶
Optionen, deren Standardwert als „ON bei Erkennung“ angegeben ist, werden automatisch aktiviert, wenn cmake die entsprechende Bibliothek auf dem System findet. Sie können durch explizite Angabe von -DWITH_XXX=OFF deaktiviert werden.
| Option | Standard | Beschreibung |
|---|---|---|
WITH_MPI |
ON |
Aktiviert MPI-Parallelisierung |
WITH_OPENMP |
ON bei Erkennung | Aktiviert OpenMP-Threadparallelisierung |
WITH_METIS |
ON bei Erkennung | Aktiviert die Gebietszerlegung mit METIS |
METIS_VER_4 |
OFF |
Verwendet METIS v4 (bei OFF wird v5 verwendet) |
WITH_MUMPS |
ON bei Erkennung | Aktiviert den parallelen direkten Solver MUMPS |
WITH_MKL |
ON bei Erkennung | Aktiviert Intel MKL (einschließlich PARDISO) |
WITH_LAPACK |
ON bei Erkennung | Aktiviert die Schätzung der Konditionszahl mit LAPACK |
WITH_ML |
ON bei Erkennung | Aktiviert AMG-Vorkonditionierung mit Trilinos ML |
WITH_REFINER |
ON bei Erkennung | Aktiviert die Netzverfeinerung mit REVOCAP_Refiner |
WITH_REVOCAP |
ON bei Erkennung | Aktiviert gekoppelte Analysen mit REVOCAP_Coupler |
WITH_TOOLS |
ON |
Baut die mitgelieferten Werkzeuge |
WITH_DOC |
OFF |
Erzeugt API-Dokumentation mit Doxygen |
WITH_NETCDF |
ON bei Erkennung | Aktiviert die Ausgabe im Exodus-II-Format (NetCDF) |
WINDOWS |
OFF |
Aktiviert den Build für Windows |
CMAKE_BUILD_TYPE |
RELEASE |
Build-Typ (RELEASE / DEBUG) |
CMAKE_INSTALL_PREFIX |
/usr/local |
Installationsverzeichnis |
DEBUG_EXTRA |
OFF |
Aktiviert die Prüfung auf Speicherlecks (für GCC, -fsanitize=address) |
DEBUG-Build¶
Wenn CMAKE_BUILD_TYPE=DEBUG angegeben ist, werden abhängig vom Compiler die folgenden Debug-Flags hinzugefügt.
| Compiler | Zusätzliche Flags |
|---|---|
| GCC | -fbounds-check -fbacktrace |
| Intel | -check uninit,bound -traceback |
Build mit GPU¶
Wenn NVIDIA HPC SDK (nvc/nvc++/nvfortran) als Compiler angegeben wird, fügt CMake automatisch die folgenden Flags hinzu.
| Flag | Beschreibung |
|---|---|
-acc |
Aktiviert OpenACC |
-Minfo=accel |
Zeigt beim Kompilieren Informationen zum GPU-Offloading an |
-gpu=ccnative,mem:managed |
Erkennt die GPU der Build-Umgebung automatisch, bestimmt daraus das Ziel und verwendet Unified Memory |
Ausführliche Anweisungen zum GPU-Build mit OpenACC finden Sie unter Build mit GPU.