Kääntäminen CMake-ohjelmalla¶
Tällä sivulla kuvataan menettely FrontISTR:n lähdekoodin hankkimisesta kääntämiseen ja asennukseen. Riippuvuuskirjastojen tiedot ovat kohdassa Pakolliset ja valinnaiset riippuvuudet.
Lähdekoodin hankkiminen¶
FrontISTR:n lähdekoodin voi hankkia GitLabista tai GitHubista.
# GitLab
git clone https://gitlab.com/FrontISTR-Commons/FrontISTR.git
# GitHub (peili)
git clone https://github.com/FrontISTR/FrontISTR.git
Kääntämismenettely¶
FrontISTR edellyttää lähdepuun ulkopuolista käännöstä (kääntäminen suoraan lähdepuussa on kielletty). Luo build-hakemisto ja suorita cmake siinä.
cd FrontISTR
mkdir build
cd build
cmake -DCMAKE_INSTALL_PREFIX=/usr/local -DWITH_MPI=ON -DWITH_OPENMP=ON ..
make -j$(nproc)
Käännöksen jälkeen ohjelma voidaan suorittaa suoraan polusta /path/to/FrontISTR/build/fistr1/fistr1. Jos haluat asentaa sen järjestelmän polkuun (CMAKE_INSTALL_PREFIX), suorita lisäksi seuraava komento.
CMake-valinnat¶
Valinnat, joiden oletusarvoksi on merkitty "ON jos havaittu", otetaan automaattisesti käyttöön, kun vastaava kirjasto löytyy järjestelmästä cmake-komennon suorituksen aikana. Ne voidaan poistaa nimenomaisesti käytöstä määrittämällä -DWITH_XXX=OFF.
| Valinta | Oletus | Kuvaus |
|---|---|---|
WITH_MPI |
ON |
Ottaa MPI-rinnakkaisuuden käyttöön |
WITH_OPENMP |
ON jos havaittu | Ottaa OpenMP-säierinnakkaisuuden käyttöön |
WITH_METIS |
ON jos havaittu | Ottaa käyttöön METIS-pohjaisen aluejaon |
METIS_VER_4 |
OFF |
Käyttää METIS v4:ää (OFF käyttää v5:tä) |
WITH_MUMPS |
ON jos havaittu | Ottaa käyttöön MUMPS-rinnakkaisen suoran ratkaisijan |
WITH_MKL |
ON jos havaittu | Ottaa Intel MKL:n käyttöön (PARDISO mukaan lukien) |
WITH_LAPACK |
ON jos havaittu | Ottaa käyttöön ehtoluvun arvioinnin LAPACKilla |
WITH_ML |
ON jos havaittu | Ottaa käyttöön Trilinos ML -pohjaisen AMG-esikonditionoinnin |
WITH_REFINER |
ON jos havaittu | Ottaa käyttöön verkon hienonnuksen REVOCAP_Refiner-ohjelmalla |
WITH_REVOCAP |
ON jos havaittu | Ottaa käyttöön kytketyn analyysin REVOCAP_Coupler-ohjelmalla |
WITH_TOOLS |
ON |
Kääntää mukana toimitettavat työkalut |
WITH_DOC |
OFF |
Luo API-dokumentaation Doxygenilla |
WITH_NETCDF |
ON jos havaittu | Ottaa käyttöön Exodus II -tulostuksen (NetCDF) |
WINDOWS |
OFF |
Ottaa Windows-käännöksen käyttöön |
CMAKE_BUILD_TYPE |
RELEASE |
Käännöstyyppi (RELEASE / DEBUG) |
CMAKE_INSTALL_PREFIX |
/usr/local |
Asennushakemisto |
DEBUG_EXTRA |
OFF |
Ottaa muistivuotojen tarkistuksen käyttöön (GCC:llä -fsanitize=address) |
DEBUG-käännös¶
Kun CMAKE_BUILD_TYPE=DEBUG määritetään, lisätään seuraavat kääntäjäkohtaiset debug-valinnat.
| Kääntäjä | Lisävalinnat |
|---|---|
| GCC | -fbounds-check -fbacktrace |
| Intel | -check uninit,bound -traceback |
Kääntäminen GPU:lle¶
Kun kääntäjäksi määritetään NVIDIA HPC SDK (nvc/nvc++/nvfortran), CMake lisää automaattisesti seuraavat valinnat.
| Valinta | Kuvaus |
|---|---|
-acc |
Ottaa OpenACC:n käyttöön |
-Minfo=accel |
Näyttää käännösaikana tietoja GPU-offloadista |
-gpu=ccnative,mem:managed |
Tunnistaa automaattisesti käännösympäristön GPU:n kohteen määrittämiseksi ja käyttää Unified Memory -muistia |
OpenACC-pohjaisen GPU-käännöksen yksityiskohtaiset menettelyt ovat kohdassa Kääntäminen GPU:lle.