Kompilēšana ar CMake¶
Šajā lapā aprakstīta procedūra no FrontISTR pirmkoda iegūšanas līdz kompilēšanai un instalēšanai. Informāciju par atkarību bibliotēkām skatiet sadaļā Obligātās un neobligātās atkarības.
Pirmkoda iegūšana¶
FrontISTR pirmkodu var iegūt no GitLab vai GitHub.
# GitLab
git clone https://gitlab.com/FrontISTR-Commons/FrontISTR.git
# GitHub (spogulis)
git clone https://github.com/FrontISTR/FrontISTR.git
Kompilēšanas procedūra¶
FrontISTR paredz kompilēšanu ārpus pirmkoda koka (kompilēšana tieši pirmkoda kokā ir aizliegta). Izveidojiet direktoriju build un tajā palaidiet cmake.
cd FrontISTR
mkdir build
cd build
cmake -DCMAKE_INSTALL_PREFIX=/usr/local -DWITH_MPI=ON -DWITH_OPENMP=ON ..
make -j$(nproc)
Pēc kompilēšanas to var palaist tieši kā /path/to/FrontISTR/build/fistr1/fistr1. Lai instalētu sistēmas ceļā (CMAKE_INSTALL_PREFIX), papildus izpildiet šādu komandu.
CMake opcijas¶
Opcijas, kuru noklusējums norādīts kā "ON, ja noteikts", tiek automātiski iespējotas, ja cmake palaišanas laikā sistēmā tiek atrasta atbilstošā bibliotēka. Tās var skaidri atspējot, norādot -DWITH_XXX=OFF.
| Opcija | Noklusējums | Apraksts |
|---|---|---|
WITH_MPI | ON | Iespējo MPI paralēlismu |
WITH_OPENMP | ON, ja noteikts | Iespējo OpenMP pavedienu paralēlismu |
WITH_METIS | ON, ja noteikts | Iespējo apgabala dekompozīciju, izmantojot METIS |
METIS_VER_4 | OFF | Izmanto METIS v4 (OFF izmanto v5) |
WITH_MUMPS | ON, ja noteikts | Iespējo MUMPS paralēlo tiešo risinātāju |
WITH_MKL | ON, ja noteikts | Iespējo Intel MKL (tostarp PARDISO) |
WITH_LAPACK | ON, ja noteikts | Iespējo nosacītības skaitļa novērtēšanu, izmantojot LAPACK |
WITH_ML | ON, ja noteikts | Iespējo AMG priekšnosacīšanu, izmantojot Trilinos ML |
WITH_REFINER | ON, ja noteikts | Iespējo tīkla precizēšanu, izmantojot REVOCAP_Refiner |
WITH_REVOCAP | ON, ja noteikts | Iespējo saistīto analīzi, izmantojot REVOCAP_Coupler |
WITH_TOOLS | ON | Kompilē komplektā iekļautos rīkus |
WITH_DOC | OFF | Ģenerē API dokumentāciju ar Doxygen |
WITH_NETCDF | ON, ja noteikts | Iespējo Exodus II izvadi (NetCDF) |
WINDOWS | OFF | Iespējo kompilēšanu Windows videi |
CMAKE_BUILD_TYPE | RELEASE | Kompilēšanas tips (RELEASE / DEBUG) |
CMAKE_INSTALL_PREFIX | /usr/local | Instalēšanas direktorija |
DEBUG_EXTRA | OFF | Iespējo atmiņas noplūžu pārbaudi (GCC gadījumā -fsanitize=address) |
DEBUG kompilēšana¶
Ja ir norādīts CMAKE_BUILD_TYPE=DEBUG, tiek pievienoti šādi kompilatoram specifiski atkļūdošanas karogi.
| Kompilators | Papildu karogi |
|---|---|
| GCC | -fbounds-check -fbacktrace |
| Intel | -check uninit,bound -traceback |
Kompilēšana GPU izmantošanai¶
Ja kā kompilators ir norādīts NVIDIA HPC SDK (nvc/nvc++/nvfortran), CMake automātiski pievieno šādus karogus.
| Karogs | Apraksts |
|---|---|
-acc | Iespējo OpenACC |
-Minfo=accel | Kompilēšanas laikā parāda informāciju par aprēķinu pārvietošanu uz GPU |
-gpu=ccnative,mem:managed | Automātiski nosaka kompilēšanas vidē esošo GPU, lai noteiktu mērķi, un izmanto vienoto atmiņu |
Detalizētu OpenACC GPU kompilēšanas procedūru skatiet sadaļā Kompilēšana GPU izmantošanai.