Utaratibu wa kujenga kwa CMake¶
Ukurasa huu unaeleza utaratibu wa kupata msimbo chanzo wa FrontISTR, kuujenga na kuusakinisha. Kwa maelezo ya maktaba tegemezi, tazama Maktaba tegemezi zinazohitajika na za hiari.
Kupata msimbo chanzo¶
Msimbo chanzo wa FrontISTR unaweza kupatikana kutoka GitLab au GitHub.
# GitLab
git clone https://gitlab.com/FrontISTR-Commons/FrontISTR.git
# GitHub (mirror)
git clone https://github.com/FrontISTR/FrontISTR.git
Utaratibu wa kujenga¶
FrontISTR inatarajia out-of-source build (kujenga moja kwa moja chini ya mzizi wa source tree hakuruhusiwi). Unda directory ya build na utekeleze cmake ndani yake.
cd FrontISTR
mkdir build
cd build
cmake -DCMAKE_INSTALL_PREFIX=/usr/local -DWITH_MPI=ON -DWITH_OPENMP=ON ..
make -j$(nproc)
Baada ya kujenga, inaweza kutekelezwa moja kwa moja kama /path/to/FrontISTR/build/fistr1/fistr1. Ili kuisakinisha kwenye path ya mfumo (CMAKE_INSTALL_PREFIX), tekeleza yafuatayo pia.
Orodha ya chaguo za CMake¶
Chaguo zilizoandikwa “ON inapogunduliwa” huwezeshwa kiotomatiki ikiwa maktaba hiyo inapatikana kwenye mfumo wakati cmake inatekelezwa. Inaweza kulemazwa kwa kubainisha wazi -DWITH_XXX=OFF.
| Chaguo | Chaguo-msingi | Maelezo |
|---|---|---|
WITH_MPI | ON | Huwezesha usambamba wa MPI |
WITH_OPENMP | ON inapogunduliwa | Huwezesha usambamba wa thread wa OpenMP |
WITH_METIS | ON inapogunduliwa | Huwezesha ugawaji wa kikoa kwa METIS |
METIS_VER_4 | OFF | Hutumia METIS v4 (OFF hutumia v5) |
WITH_MUMPS | ON inapogunduliwa | Huwezesha solver ya moja kwa moja sambamba ya MUMPS |
WITH_MKL | ON inapogunduliwa | Huwezesha Intel MKL (ikiwemo PARDISO) |
WITH_LAPACK | ON inapogunduliwa | Huwezesha ukadiriaji wa condition number kwa LAPACK |
WITH_ML | ON inapogunduliwa | Huwezesha preconditioning ya AMG kwa Trilinos ML |
WITH_REFINER | ON inapogunduliwa | Huwezesha ugawanyaji mdogo wa mesh kwa REVOCAP_Refiner |
WITH_REVOCAP | ON inapogunduliwa | Huwezesha uchanganuzi uliounganishwa kwa REVOCAP_Coupler |
WITH_TOOLS | ON | Hujenga zana zinazohusiana |
WITH_DOC | OFF | Huzalisha nyaraka za API kwa Doxygen |
WITH_NETCDF | ON inapogunduliwa | Huwezesha matokeo ya umbizo la Exodus II (NetCDF) |
WINDOWS | OFF | Huwezesha build ya Windows |
CMAKE_BUILD_TYPE | RELEASE | Aina ya build (RELEASE / DEBUG) |
CMAKE_INSTALL_PREFIX | /usr/local | Directory ya kusakinisha |
DEBUG_EXTRA | OFF | Huwezesha ukaguzi wa memory leak (kwa GCC, -fsanitize=address) |
DEBUG build¶
Ukibainisha CMAKE_BUILD_TYPE=DEBUG, flag zifuatazo za debugging huongezwa kulingana na compiler.
| Compiler | Flag zinazoongezwa |
|---|---|
| GCC | -fbounds-check -fbacktrace |
| Intel | -check uninit,bound -traceback |
Kujenga kwa GPU¶
Unapobainisha NVIDIA HPC SDK (nvc/nvc++/nvfortran) kama compiler, CMake huongeza flag zifuatazo kiotomatiki.
| Flag | Maelezo |
|---|---|
-acc | Huwezesha OpenACC |
-Minfo=accel | Huonyesha taarifa za GPU offload wakati wa compilation |
-gpu=ccnative,mem:managed | Hutambua GPU ya mazingira ya build kiotomatiki ili kuamua target na hutumia Unified Memory |
Kwa utaratibu wa kina wa GPU build kwa OpenACC, tazama Kujenga kwa GPU.