Pāriet uz saturu

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 --build . --target install

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
cmake -DCMAKE_BUILD_TYPE=DEBUG ..

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.

AI-assisted translation May contain errors Official docs Status