CMake bidez konpilatzea¶
Orrialde honetan FrontISTR-en iturburu-kodea eskuratzetik konpilatu eta instalatu arteko prozedura azaltzen da. Mendekotasun-liburutegiei buruzko xehetasunetarako, ikusi Nahitaezko eta aukerako mendekotasunak.
Iturburu-kodea eskuratzea¶
FrontISTR-en iturburu-kodea GitLab edo GitHub-etik lor daiteke.
# GitLab
git clone https://gitlab.com/FrontISTR-Commons/FrontISTR.git
# GitHub (ispilua)
git clone https://github.com/FrontISTR/FrontISTR.git
Konpilazio-prozedura¶
FrontISTR-ek iturburu-zuhaitzetik kanpoko konpilazioa erabiltzen du (debekatuta dago zuzenean iturburu-zuhaitzaren barruan konpilatzea). Sortu build direktorioa eta exekutatu cmake bertan.
cd FrontISTR
mkdir build
cd build
cmake -DCMAKE_INSTALL_PREFIX=/usr/local -DWITH_MPI=ON -DWITH_OPENMP=ON ..
make -j$(nproc)
Konpilatu ondoren, zuzenean exekuta daiteke /path/to/FrontISTR/build/fistr1/fistr1 gisa. Sistemaren bidean (CMAKE_INSTALL_PREFIX) instalatzeko, exekutatu gainera honako komandoa.
CMake aukerak¶
Lehenetsi gisa "detektatuz gero ON" duten aukerak automatikoki gaitzen dira cmake exekutatzean dagokion liburutegia sisteman aurkitzen bada. Espresuki desgaitu daitezke -DWITH_XXX=OFF zehaztuz.
| Aukera | Lehenetsia | Deskribapena |
|---|---|---|
WITH_MPI | ON | MPI paralelismoa gaitzen du |
WITH_OPENMP | Detektatuz gero ON | OpenMP harien paralelismoa gaitzen du |
WITH_METIS | Detektatuz gero ON | METIS bidezko sarearen partizionamendua gaitzen du |
METIS_VER_4 | OFF | METIS v4 erabiltzen du (OFF bada, v5) |
WITH_MUMPS | Detektatuz gero ON | MUMPS ebazle zuzen paraleloa gaitzen du |
WITH_MKL | Detektatuz gero ON | Intel MKL gaitzen du (PARDISO barne) |
WITH_LAPACK | Detektatuz gero ON | LAPACK bidezko baldintza-zenbakiaren estimazioa gaitzen du |
WITH_ML | Detektatuz gero ON | Trilinos ML bidezko AMG aurrebaldintzatzea gaitzen du |
WITH_REFINER | Detektatuz gero ON | REVOCAP_Refiner bidezko sare-fintzea gaitzen du |
WITH_REVOCAP | Detektatuz gero ON | REVOCAP_Coupler bidezko analisi akoplatua gaitzen du |
WITH_TOOLS | ON | Paketeko tresnak konpilatzen ditu |
WITH_DOC | OFF | Doxygen bidez API dokumentazioa sortzen du |
WITH_NETCDF | Detektatuz gero ON | Exodus II formatuko irteera (NetCDF) gaitzen du |
WINDOWS | OFF | Windows-erako konpilazioa gaitzen du |
CMAKE_BUILD_TYPE | RELEASE | Konpilazio mota (RELEASE / DEBUG) |
CMAKE_INSTALL_PREFIX | /usr/local | Instalazio-direktorioa |
DEBUG_EXTRA | OFF | Memoria-ihesak egiaztatzea gaitzen du (GCC-rako, -fsanitize=address) |
DEBUG konpilazioa¶
CMAKE_BUILD_TYPE=DEBUG zehazten denean, konpiladorearen araberako honako arazketa-bandera hauek gehitzen dira.
| Konpiladorea | Bandera gehigarriak |
|---|---|
| GCC | -fbounds-check -fbacktrace |
| Intel | -check uninit,bound -traceback |
GPUarekin konpilatzea¶
NVIDIA HPC SDK (nvc/nvc++/nvfortran) konpiladore gisa zehazten denean, CMake-k automatikoki honako banderak gehitzen ditu.
| Bandera | Deskribapena |
|---|---|
-acc | OpenACC gaitzen du |
-Minfo=accel | GPU offload-ari buruzko informazioa konpilazioan bistaratzen du |
-gpu=ccnative,mem:managed | Konpilazio-inguruneko GPUa automatikoki detektatu, helburua zehaztu eta Unified Memory erabiltzen du |
OpenACC bidezko GPU konpilazio-prozedura zehatzetarako, ikusi GPUarekin konpilatzea.