Sestavení pomocí CMake¶
Tato stránka popisuje postup od získání zdrojového kódu FrontISTR až po sestavení a instalaci. Podrobnosti o závislých knihovnách jsou uvedeny v části Povinné a volitelné závislosti.
Získání zdrojového kódu¶
Zdrojový kód FrontISTR lze získat z GitLab nebo GitHub.
# GitLab
git clone https://gitlab.com/FrontISTR-Commons/FrontISTR.git
# GitHub (zrcadlo)
git clone https://github.com/FrontISTR/FrontISTR.git
Postup sestavení¶
FrontISTR předpokládá sestavení mimo zdrojový strom (sestavování přímo ve zdrojovém stromu je zakázáno). Vytvořte adresář build a spusťte v něm cmake.
cd FrontISTR
mkdir build
cd build
cmake -DCMAKE_INSTALL_PREFIX=/usr/local -DWITH_MPI=ON -DWITH_OPENMP=ON ..
make -j$(nproc)
Po sestavení lze program spustit přímo jako /path/to/FrontISTR/build/fistr1/fistr1. Chcete-li jej nainstalovat do systémové cesty (CMAKE_INSTALL_PREFIX), spusťte navíc následující příkaz.
Volby CMake¶
Volby, jejichž výchozí hodnota je uvedena jako „ON při detekci“, se při spuštění cmake automaticky povolí, pokud je v systému nalezena odpovídající knihovna. Lze je výslovně zakázat zadáním -DWITH_XXX=OFF.
| Volba | Výchozí | Popis |
|---|---|---|
WITH_MPI | ON | Povolí paralelismus MPI |
WITH_OPENMP | ON při detekci | Povolí vláknový paralelismus OpenMP |
WITH_METIS | ON při detekci | Povolí dělení sítě pomocí METIS |
METIS_VER_4 | OFF | Použije METIS v4 (OFF používá v5) |
WITH_MUMPS | ON při detekci | Povolí paralelní přímý řešič MUMPS |
WITH_MKL | ON při detekci | Povolí Intel MKL (včetně PARDISO) |
WITH_LAPACK | ON při detekci | Povolí odhad čísla podmíněnosti pomocí LAPACK |
WITH_ML | ON při detekci | Povolí AMG předpodmínění pomocí Trilinos ML |
WITH_REFINER | ON při detekci | Povolí zjemňování sítě pomocí REVOCAP_Refiner |
WITH_REVOCAP | ON při detekci | Povolí sdruženou analýzu pomocí REVOCAP_Coupler |
WITH_TOOLS | ON | Sestaví přibalené nástroje |
WITH_DOC | OFF | Generuje dokumentaci API pomocí Doxygen |
WITH_NETCDF | ON při detekci | Povolí výstup Exodus II (NetCDF) |
WINDOWS | OFF | Povolí sestavení pro Windows |
CMAKE_BUILD_TYPE | RELEASE | Typ sestavení (RELEASE / DEBUG) |
CMAKE_INSTALL_PREFIX | /usr/local | Instalační adresář |
DEBUG_EXTRA | OFF | Povolí kontrolu úniků paměti (pro GCC, -fsanitize=address) |
Sestavení DEBUG¶
Při zadání CMAKE_BUILD_TYPE=DEBUG se přidají následující ladicí příznaky specifické pro kompilátor.
| Kompilátor | Další příznaky |
|---|---|
| GCC | -fbounds-check -fbacktrace |
| Intel | -check uninit,bound -traceback |
Sestavení s GPU¶
Je-li jako kompilátor zadán NVIDIA HPC SDK (nvc/nvc++/nvfortran), CMake automaticky přidá následující příznaky.
| Příznak | Popis |
|---|---|
-acc | Povolí OpenACC |
-Minfo=accel | Při kompilaci zobrazí informace o přenesení výpočtů na GPU |
-gpu=ccnative,mem:managed | Automaticky detekuje GPU v prostředí sestavení, určí cílovou architekturu a použije Unified Memory |
Podrobný postup sestavení s GPU pomocí OpenACC je uveden v části Sestavení s GPU.