Kompiliavimas naudojant CMake¶
Šiame puslapyje aprašoma procedūra nuo FrontISTR šaltinio kodo gavimo iki kompiliavimo ir įdiegimo. Išsamesnę informaciją apie priklausomas bibliotekas žr. Privalomos ir neprivalomos priklausomybės.
Šaltinio kodo gavimas¶
FrontISTR šaltinio kodą galima gauti iš GitLab arba GitHub.
# GitLab
git clone https://gitlab.com/FrontISTR-Commons/FrontISTR.git
# GitHub (veidrodis)
git clone https://github.com/FrontISTR/FrontISTR.git
Kompiliavimo procedūra¶
FrontISTR numato kompiliavimą už šaltinio medžio ribų (kompiliuoti tiesiogiai šaltinio medyje draudžiama). Sukurkite katalogą build ir jame paleiskite cmake.
cd FrontISTR
mkdir build
cd build
cmake -DCMAKE_INSTALL_PREFIX=/usr/local -DWITH_MPI=ON -DWITH_OPENMP=ON ..
make -j$(nproc)
Po kompiliavimo programą galima tiesiogiai paleisti kaip /path/to/FrontISTR/build/fistr1/fistr1. Norėdami įdiegti ją į sistemos kelią (CMAKE_INSTALL_PREFIX), papildomai vykdykite šią komandą.
CMake parinkčių sąrašas¶
Parinktys, kurių numatytoji reikšmė nurodyta kaip „ON aptikus“, automatiškai įjungiamos, jei vykdant cmake sistemoje randama atitinkama biblioteka. Jas galima aiškiai išjungti nurodant -DWITH_XXX=OFF.
| Parinktis | Numatytoji reikšmė | Aprašymas |
|---|---|---|
WITH_MPI | ON | Įjungia MPI lygiagretųjį vykdymą |
WITH_OPENMP | ON aptikus | Įjungia OpenMP gijų lygiagretųjį vykdymą |
WITH_METIS | ON aptikus | Įjungia srities skaidymą naudojant METIS |
METIS_VER_4 | OFF | Naudoja METIS v4 (kai OFF, naudojama v5) |
WITH_MUMPS | ON aptikus | Įjungia MUMPS lygiagretųjį tiesioginį sprendiklį |
WITH_MKL | ON aptikus | Įjungia Intel MKL (įskaitant PARDISO) |
WITH_LAPACK | ON aptikus | Įjungia sąlygotumo skaičiaus įvertinimą naudojant LAPACK |
WITH_ML | ON aptikus | Įjungia AMG išankstinį sąlygojimą naudojant Trilinos ML |
WITH_REFINER | ON aptikus | Įjungia tinklo smulkinimą naudojant REVOCAP_Refiner |
WITH_REVOCAP | ON aptikus | Įjungia susietąją analizę naudojant REVOCAP_Coupler |
WITH_TOOLS | ON | Sukompiliuoja pridedamus įrankius |
WITH_DOC | OFF | Generuoja API dokumentaciją naudojant Doxygen |
WITH_NETCDF | ON aptikus | Įjungia Exodus II formato išvestį (NetCDF) |
WINDOWS | OFF | Įjungia kompiliavimą Windows sistemai |
CMAKE_BUILD_TYPE | RELEASE | Kompiliavimo tipas (RELEASE / DEBUG) |
CMAKE_INSTALL_PREFIX | /usr/local | Diegimo katalogas |
DEBUG_EXTRA | OFF | Įjungia atminties nuotėkio tikrinimą (GCC, -fsanitize=address) |
DEBUG kompiliavimas¶
Nurodžius CMAKE_BUILD_TYPE=DEBUG, pridedamos šios kompiliatoriui būdingos derinimo vėliavėlės.
| Kompiliatorius | Papildomos vėliavėlės |
|---|---|
| GCC | -fbounds-check -fbacktrace |
| Intel | -check uninit,bound -traceback |
Kompiliavimas naudojant GPU¶
Kai kompiliatoriumi nurodomas NVIDIA HPC SDK (nvc/nvc++/nvfortran), CMake automatiškai prideda šias vėliavėles.
| Vėliavėlė | Aprašymas |
|---|---|
-acc | Įjungia OpenACC |
-Minfo=accel | Kompiliavimo metu rodo informaciją apie skaičiavimų perkėlimą į GPU |
-gpu=ccnative,mem:managed | Automatiškai aptinka kompiliavimo aplinkos GPU, nustato tikslinę architektūrą ir naudoja Unified Memory |
Išsamią OpenACC GPU kompiliavimo procedūrą žr. Kompiliavimas naudojant GPU.