Translation update pending
The Polish translation may be out of date because the Japanese source has changed. The existing translation remains available while it is being updated.
Kompilacja za pomocą CMake¶
Na tej stronie opisano procedurę od uzyskania kodu źródłowego FrontISTR po kompilację i instalację. Szczegółowe informacje o bibliotekach zależnych zawiera sekcja Wymagane i opcjonalne zależności.
Pobieranie kodu źródłowego¶
Kod źródłowy FrontISTR można uzyskać z GitLab lub GitHub.
# GitLab
git clone https://gitlab.com/FrontISTR-Commons/FrontISTR.git
# GitHub (repozytorium lustrzane)
git clone https://github.com/FrontISTR/FrontISTR.git
Procedura kompilacji¶
FrontISTR zakłada kompilację poza drzewem źródeł (kompilowanie bezpośrednio w drzewie źródeł jest zabronione). Utwórz katalog build i uruchom w nim cmake.
cd FrontISTR
mkdir build
cd build
cmake -DCMAKE_INSTALL_PREFIX=/usr/local -DWITH_MPI=ON -DWITH_OPENMP=ON ..
make -j$(nproc)
Po kompilacji program można uruchomić bezpośrednio jako /path/to/FrontISTR/build/fistr1/fistr1. Aby zainstalować go w ścieżce systemowej (CMAKE_INSTALL_PREFIX), wykonaj dodatkowo następujące polecenie.
Opcje CMake¶
Opcje, których wartość domyślna jest podana jako "ON, jeśli wykryto", są włączane automatycznie, gdy odpowiednia biblioteka zostanie znaleziona w systemie podczas uruchamiania cmake. Można je jawnie wyłączyć, podając -DWITH_XXX=OFF.
| Opcja | Domyślnie | Opis |
|---|---|---|
WITH_MPI | ON | Włącza równoległość MPI |
WITH_OPENMP | ON, jeśli wykryto | Włącza równoległość wątkową OpenMP |
WITH_METIS | ON, jeśli wykryto | Włącza dekompozycję domeny za pomocą METIS |
WITH_MUMPS | ON, jeśli wykryto | Włącza równoległy solver bezpośredni MUMPS |
WITH_MKL | ON, jeśli wykryto | Włącza Intel MKL (w tym PARDISO) |
WITH_LAPACK | ON, jeśli wykryto | Włącza estymację liczby uwarunkowania za pomocą LAPACK |
WITH_ML | ON, jeśli wykryto | Włącza prekondycjonowanie AMG za pomocą Trilinos ML |
WITH_REFINER | ON, jeśli wykryto | Włącza zagęszczanie siatki za pomocą REVOCAP_Refiner |
WITH_REVOCAP | ON, jeśli wykryto | Włącza analizę sprzężoną za pomocą REVOCAP_Coupler |
WITH_TOOLS | ON | Kompiluje dołączone narzędzia |
WITH_DOC | OFF | Generuje dokumentację API za pomocą Doxygen |
WITH_NETCDF | ON, jeśli wykryto | Włącza zapis Exodus II (NetCDF) |
WINDOWS | OFF | Włącza kompilację dla Windows |
CMAKE_BUILD_TYPE | RELEASE | Typ kompilacji (RELEASE / DEBUG) |
CMAKE_INSTALL_PREFIX | /usr/local | Katalog instalacji |
DEBUG_EXTRA | OFF | Włącza kontrolę wycieków pamięci (dla GCC, -fsanitize=address) |
NVHPC_NO_ACC | OFF | Wyłącza OpenACC podczas używania kompilatorów NVIDIA HPC SDK i buduje wersję CPU |
Kompilacja DEBUG¶
Po podaniu CMAKE_BUILD_TYPE=DEBUG dodawane są następujące flagi debugowania zależne od kompilatora.
| Kompilator | Dodatkowe flagi |
|---|---|
| GCC | -fbounds-check -fbacktrace |
| Intel | -check uninit,bound -traceback |
Kompilacja z obsługą GPU¶
Gdy jako kompilator wskazano NVIDIA HPC SDK (nvc/nvc++/nvfortran), CMake automatycznie dodaje następujące flagi.
| Flaga | Opis |
|---|---|
-acc | Włącza OpenACC |
-Minfo=accel | Wyświetla podczas kompilacji informacje o przenoszeniu obliczeń na GPU |
-gpu=ccnative,mem:managed | Automatycznie wykrywa GPU w środowisku kompilacji, aby określić platformę docelową, i używa Unified Memory |
Po podaniu -DNVHPC_NO_ACC=ON flagi te nie są dodawane.
Szczegółową procedurę kompilacji z obsługą GPU przy użyciu OpenACC zawiera sekcja Kompilacja z obsługą GPU.