Izgradnja pomoću CMake-a¶
Ova stranica opisuje postupak od pribavljanja izvornog koda FrontISTR-a do izgradnje i instalacije. Pojedinosti o ovisnim bibliotekama potražite u Obvezne i neobavezne ovisnosti.
Dohvaćanje izvornog koda¶
Izvorni kod FrontISTR-a može se pribaviti s GitLaba ili GitHuba.
# GitLab
git clone https://gitlab.com/FrontISTR-Commons/FrontISTR.git
# GitHub (mirror)
git clone https://github.com/FrontISTR/FrontISTR.git
Postupak izgradnje¶
FrontISTR pretpostavlja izgradnju izvan izvornog stabla (izgradnja izravno u izvornom stablu je zabranjena). Izradite direktorij build i u njemu pokrenite cmake.
cd FrontISTR
mkdir build
cd build
cmake -DCMAKE_INSTALL_PREFIX=/usr/local -DWITH_MPI=ON -DWITH_OPENMP=ON ..
make -j$(nproc)
Nakon izgradnje program se može pokrenuti izravno kao /path/to/FrontISTR/build/fistr1/fistr1. Za instalaciju u sistemsku putanju (CMAKE_INSTALL_PREFIX) dodatno pokrenite sljedeću naredbu.
CMake opcije¶
Opcije čija je zadana vrijednost navedena kao „ON ako je otkriveno” automatski se omogućuju kada se pri pokretanju cmake-a pronađe odgovarajuća biblioteka u sustavu. Mogu se izričito onemogućiti navođenjem -DWITH_XXX=OFF.
| opcija | Zadano | Opis |
|---|---|---|
WITH_MPI | ON | Omogućuje MPI paralelizam |
WITH_OPENMP | ON ako je otkriveno | Omogućuje OpenMP paralelizam s nitima |
WITH_METIS | ON ako je otkriveno | Omogućuje dekompoziciju domene pomoću METIS- |
METIS_VER_4 | OFF | koristi METIS v4 (OFF koristi v5) |
WITH_MUMPS | ON ako je otkriveno | Omogućuje paralelni izravni rješavač MUMPS |
WITH_MKL | ON ako je otkriveno | Omogućuje Intel MKL (uključujući PARDISO) |
WITH_LAPACK | ON ako je otkriveno | Omogućuje procjenu broja uvjetovanosti pomoću LAPACK- |
WITH_ML | ON ako je otkriveno | Omogućuje AMG predkondicioniranje pomoću Trilinos ML- |
WITH_REFINER | ON ako je otkriveno | Omogućuje profinjenje mreže pomoću REVOCAP_Refiner- |
WITH_REVOCAP | ON ako je otkriveno | Omogućuje spregnutu analizu pomoću REVOCAP_Coupler- |
WITH_TOOLS | ON | Izgrađuje priložene alate |
WITH_DOC | OFF | Generira API dokumentaciju pomoću Doxygena |
WITH_NETCDF | ON ako je otkriveno | Omogućuje izlaz u formatu Exodus II (NetCDF) |
WINDOWS | OFF | Omogućuje izgradnju za Windows |
CMAKE_BUILD_TYPE | RELEASE | Vrsta izgradnje (RELEASE / DEBUG) |
CMAKE_INSTALL_PREFIX | /usr/local | Instalacijski direktorij |
DEBUG_EXTRA | OFF | Omogućuje provjeru curenja memorije (za GCC, -fsanitize=address) |
DEBUG izgradnja¶
Kada je navedeno CMAKE_BUILD_TYPE=DEBUG, dodaju se sljedeće zastavice za ispravljanje pogrešaka specifične za prevoditelj.
| Kompajler | Dodatne zastavice |
|---|---|
| GCC | -fbounds-check -fbacktrace |
| Intel | -check uninit,bound -traceback |
Izgradnja s GPU-om¶
Kada je NVIDIA HPC SDK (nvc/nvc++/nvfortran) naveden kao prevoditelj, CMake automatski dodaje sljedeće zastavice.
| Zastavica | Opis |
|---|---|
-acc | Omogućuje OpenACC |
-Minfo=accel | Prikazuje informacije o GPU rasterećenju tijekom prevođenja |
-gpu=ccnative,mem:managed | Automatski otkriva GPU u okruženju izgradnje radi određivanja cilja i koristi objedinjenu memoriju |
Za detaljan postupak GPU izgradnje s OpenACC-om pogledajte Izgradnja s GPU-om.