Postopek gradnje s CMake¶
Ta stran opisuje postopek od pridobitve izvorne kode FrontISTR do gradnje in namestitve. Podrobnosti o odvisnih knjižnicah so v Obvezne in izbirne odvisne knjižnice.
Pridobitev izvorne kode¶
Izvorno kodo FrontISTR lahko pridobite iz GitLab ali GitHub.
# GitLab
git clone https://gitlab.com/FrontISTR-Commons/FrontISTR.git
# GitHub(ミラー)
git clone https://github.com/FrontISTR/FrontISTR.git
Postopek gradnje¶
FrontISTR predpostavlja gradnjo zunaj izvornega drevesa (gradnja neposredno v korenu izvornega drevesa je prepovedana). Ustvarite imenik build in v njem zaženite cmake.
cd FrontISTR
mkdir build
cd build
cmake -DCMAKE_INSTALL_PREFIX=/usr/local -DWITH_MPI=ON -DWITH_OPENMP=ON ..
make -j$(nproc)
Po gradnji ga lahko neposredno zaženete kot /path/to/FrontISTR/build/fistr1/fistr1. Za namestitev v sistemsko pot (CMAKE_INSTALL_PREFIX) dodatno izvedite naslednje.
Seznam možnosti CMake¶
Možnosti, označene z »ON ob zaznavi«, se samodejno omogočijo, če cmake med izvajanjem v sistemu najde ustrezno knjižnico. Izrecno jih lahko onemogočite z -DWITH_XXX=OFF.
| Možnost | Privzeto | Opis |
|---|---|---|
WITH_MPI | ON | Omogoči vzporedno izvajanje MPI |
WITH_OPENMP | ON ob zaznavi | Omogoči večnitno vzporedno izvajanje OpenMP |
WITH_METIS | ON ob zaznavi | Omogoči razdelitev domen z METIS |
METIS_VER_4 | OFF | Uporabi METIS v4 (pri OFF v5) |
WITH_MUMPS | ON ob zaznavi | Omogoči vzporedni neposredni reševalnik MUMPS |
WITH_MKL | ON ob zaznavi | Omogoči Intel MKL (vključno s PARDISO) |
WITH_LAPACK | ON ob zaznavi | Omogoči ocenjevanje pogojenosti z LAPACK |
WITH_ML | ON ob zaznavi | Omogoči predpogojevanje AMG z Trilinos ML |
WITH_REFINER | ON ob zaznavi | Omogoči zgoščevanje mreže z REVOCAP_Refiner |
WITH_REVOCAP | ON ob zaznavi | Omogoči sklopljeno analizo z REVOCAP_Coupler |
WITH_TOOLS | ON | Zgradi priložena orodja |
WITH_DOC | OFF | Ustvari dokumentacijo API z Doxygen |
WITH_NETCDF | ON ob zaznavi | Omogoči izpis v obliki Exodus II (NetCDF) |
WINDOWS | OFF | Omogoči gradnjo za Windows |
CMAKE_BUILD_TYPE | RELEASE | Vrsta gradnje (RELEASE / DEBUG) |
CMAKE_INSTALL_PREFIX | /usr/local | Ciljni imenik namestitve |
DEBUG_EXTRA | OFF | Omogoči preverjanje uhajanja pomnilnika (za GCC, -fsanitize=address) |
Gradnja DEBUG¶
Če določite CMAKE_BUILD_TYPE=DEBUG, se glede na prevajalnik dodajo naslednje zastavice za razhroščevanje.
| Prevajalnik | Dodatne zastavice |
|---|---|
| GCC | -fbounds-check -fbacktrace |
| Intel | -check uninit,bound -traceback |
Gradnja z GPU¶
Če kot prevajalnik določite NVIDIA HPC SDK (nvc/nvc++/nvfortran), CMake samodejno doda naslednje zastavice.
| Zastavica | Opis |
|---|---|
-acc | Omogoči OpenACC |
-Minfo=accel | Med prevajanjem prikaže informacije o razbremenitvi na GPU |
-gpu=ccnative,mem:managed | Samodejno zazna GPU v okolju gradnje, določi cilj in uporabi Unified Memory |
Podroben postopek gradnje za GPU z OpenACC je v Gradnja z GPU.