Keri sisuni

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 --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
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
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

Kui määratakse -DNVHPC_NO_ACC=ON, neid lippe ei lisata.

OpenACC-ga GPU-kompileerimise üksikasjalikku protseduuri vaadake jaotisest GPU-ga kompileerimine.