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 verkon osioinnin |
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-tuella¶
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-tuella.