Keri sisuni

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

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

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.

AI-assisted translation May contain errors Official docs Status