Kompileerimine CMake'iga¶
Sellel lehel kirjeldatakse protseduuri FrontISTR-i lähtekoodi hankimisest kuni kompileerimise ja paigaldamiseni. Sõltuvusteekide üksikasju vaadake jaotisest Kohustuslikud ja valikulised sõltuvused.
Lähtekoodi hankimine¶
FrontISTR-i lähtekoodi saab hankida GitLabist või GitHubist.
# GitLab
git clone https://gitlab.com/FrontISTR-Commons/FrontISTR.git
# GitHub (peegel)
git clone https://github.com/FrontISTR/FrontISTR.git
Kompileerimisprotseduur¶
FrontISTR eeldab lähtepuust väljaspool kompileerimist (otse lähtepuus kompileerimine on keelatud). Looge kataloog build ja käivitage cmake selle sees.
cd FrontISTR
mkdir build
cd build
cmake -DCMAKE_INSTALL_PREFIX=/usr/local -DWITH_MPI=ON -DWITH_OPENMP=ON ..
make -j$(nproc)
Pärast kompileerimist saab programmi käitada otse kujul /path/to/FrontISTR/build/fistr1/fistr1. Süsteemiteele (CMAKE_INSTALL_PREFIX) paigaldamiseks käivitage lisaks järgmine käsk.
CMake'i valikud¶
Valikud, mille vaikeväärtuseks on märgitud „ON, kui tuvastatakse“, lubatakse automaatselt, kui cmake'i käivitamisel leitakse süsteemist vastav teek. Need saab selgesõnaliselt keelata, määrates -DWITH_XXX=OFF.
| Valik | Vaikimisi | Kirjeldus |
|---|---|---|
WITH_MPI | ON | Lubab MPI-paralleelsuse |
WITH_OPENMP | ON, kui tuvastatakse | Lubab OpenMP lõimeparalleelsuse |
WITH_METIS | ON, kui tuvastatakse | Lubab METIS-e kasutava domeenijaotuse |
METIS_VER_4 | OFF | Kasutab METIS v4 (OFF kasutab v5) |
WITH_MUMPS | ON, kui tuvastatakse | Lubab MUMPS-i paralleelse otselahendaja |
WITH_MKL | ON, kui tuvastatakse | Lubab Intel MKL-i (sh PARDISO) |
WITH_LAPACK | ON, kui tuvastatakse | Lubab tingimusarvu hindamise LAPACK-iga |
WITH_ML | ON, kui tuvastatakse | Lubab AMG-eelkonditsioneerimise Trilinos ML-iga |
WITH_REFINER | ON, kui tuvastatakse | Lubab võrgustiku tihendamise REVOCAP_Refineriga |
WITH_REVOCAP | ON, kui tuvastatakse | Lubab sidestatud analüüsi REVOCAP_Coupleriga |
WITH_TOOLS | ON | Kompileerib kaasasolevad tööriistad |
WITH_DOC | OFF | Genereerib API-dokumentatsiooni Doxygeniga |
WITH_NETCDF | ON, kui tuvastatakse | Lubab Exodus II väljundi (NetCDF) |
WINDOWS | OFF | Lubab Windowsi jaoks kompileerimise |
CMAKE_BUILD_TYPE | RELEASE | Kompileerimistüüp (RELEASE / DEBUG) |
CMAKE_INSTALL_PREFIX | /usr/local | Paigalduskataloog |
DEBUG_EXTRA | OFF | Lubab mälulekete kontrolli (GCC puhul -fsanitize=address) |
DEBUG-kompileerimine¶
Kui määratakse CMAKE_BUILD_TYPE=DEBUG, lisatakse järgmised kompilaatorispetsiifilised silumisvõtmed.
| Kompilaator | Lisavõtmed |
|---|---|
| GCC | -fbounds-check -fbacktrace |
| Intel | -check uninit,bound -traceback |
GPU-ga kompileerimine¶
Kui kompilaatoriks määratakse NVIDIA HPC SDK (nvc/nvc++/nvfortran), lisab CMake automaatselt järgmised võtmed.
| Võti | Kirjeldus |
|---|---|
-acc | Lubab OpenACC |
-Minfo=accel | Kuvab kompileerimise ajal teavet GPU-le delegeerimise kohta |
-gpu=ccnative,mem:managed | Tuvastab kompileerimiskeskkonna GPU automaatselt, määrab sihtmärgi ja kasutab Unified Memory't |
OpenACC-ga GPU-kompileerimise üksikasjalikku protseduuri vaadake jaotisest GPU-ga kompileerimine.