Translation update pending
The Estonian translation may be out of date because the Japanese source has changed. The existing translation remains available while it is being updated.
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 |
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) |
NVHPC_NO_ACC | OFF | Keelab OpenACC kasutamise NVIDIA HPC SDK kompilaatoritega ja ehitab CPU-versiooni |
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 |
Kui määratakse -DNVHPC_NO_ACC=ON, neid lippe ei lisata.
OpenACC-ga GPU-kompileerimise üksikasjalikku protseduuri vaadake jaotisest GPU-ga kompileerimine.