CMake bilan yig‘ish¶
Ushbu sahifada FrontISTR manba kodini olishdan boshlab yig‘ish va o‘rnatishgacha bo‘lgan tartib bayon qilinadi. Bog‘liq kutubxonalar tafsilotlari uchun Majburiy va ixtiyoriy bog‘liqliklar ga qarang.
Manba kodini olish¶
FrontISTR manba kodini GitLab yoki GitHub dan olish mumkin.
# GitLab
git clone https://gitlab.com/FrontISTR-Commons/FrontISTR.git
# GitHub (mirror)
git clone https://github.com/FrontISTR/FrontISTR.git
Yig‘ish tartibi¶
FrontISTR manba daraxtidan tashqarida yig‘ishni talab qiladi (manba daraxtining o‘zida to‘g‘ridan-to‘g‘ri yig‘ish taqiqlangan). build katalogini yarating va cmake ni uning ichida ishga tushiring.
cd FrontISTR
mkdir build
cd build
cmake -DCMAKE_INSTALL_PREFIX=/usr/local -DWITH_MPI=ON -DWITH_OPENMP=ON ..
make -j$(nproc)
Yig‘ilgandan so‘ng uni /path/to/FrontISTR/build/fistr1/fistr1 sifatida bevosita ishga tushirish mumkin. Tizim yo‘liga (CMAKE_INSTALL_PREFIX) o‘rnatish uchun qo‘shimcha ravishda quyidagi buyruqni bajaring.
CMake parametrlari¶
Standart qiymati "aniqlansa ON" deb ko‘rsatilgan parametrlar cmake ishga tushirilganda tegishli kutubxona tizimda topilsa avtomatik yoqiladi. -DWITH_XXX=OFF ni ko‘rsatish orqali ularni aniq o‘chirib qo‘yish mumkin.
| Parametr | Standart | Tavsif |
|---|---|---|
WITH_MPI | ON | MPI parallelligini yoqadi |
WITH_OPENMP | Aniqlansa ON | OpenMP oqimlar parallelligini yoqadi |
WITH_METIS | Aniqlansa ON | METIS yordamida soha bo‘linishini yoqadi |
METIS_VER_4 | OFF | METIS v4 dan foydalanadi (OFF v5 dan foydalanadi) |
WITH_MUMPS | Aniqlansa ON | MUMPS parallel to‘g‘ridan-to‘g‘ri yechuvchisini yoqadi |
WITH_MKL | Aniqlansa ON | Intel MKL ni (PARDISO bilan birga) yoqadi |
WITH_LAPACK | Aniqlansa ON | LAPACK yordamida shartlanganlik sonini baholashni yoqadi |
WITH_ML | Aniqlansa ON | Trilinos ML yordamida AMG oldindan shartlashni yoqadi |
WITH_REFINER | Aniqlansa ON | REVOCAP_Refiner yordamida to‘rni mayda bo‘lishni yoqadi |
WITH_REVOCAP | Aniqlansa ON | REVOCAP_Coupler yordamida bog‘langan tahlilni yoqadi |
WITH_TOOLS | ON | Paket tarkibidagi vositalarni yig‘adi |
WITH_DOC | OFF | Doxygen bilan API hujjatlarini yaratadi |
WITH_NETCDF | Aniqlansa ON | Exodus II chiqishini (NetCDF) yoqadi |
WINDOWS | OFF | Windows uchun yig‘ishni yoqadi |
CMAKE_BUILD_TYPE | RELEASE | Yig‘ish turi (RELEASE / DEBUG) |
CMAKE_INSTALL_PREFIX | /usr/local | O‘rnatish katalogi |
DEBUG_EXTRA | OFF | Xotira sizib chiqishini tekshirishni yoqadi (GCC uchun -fsanitize=address) |
DEBUG yig‘ish¶
CMAKE_BUILD_TYPE=DEBUG ko‘rsatilganda quyidagi kompilyatorga xos nosozliklarni aniqlash bayroqlari qo‘shiladi.
| Kompilyator | Qo‘shimcha bayroqlar |
|---|---|
| GCC | -fbounds-check -fbacktrace |
| Intel | -check uninit,bound -traceback |
GPU bilan yig‘ish¶
NVIDIA HPC SDK (nvc/nvc++/nvfortran) kompilyator sifatida ko‘rsatilganda CMake quyidagi bayroqlarni avtomatik qo‘shadi.
| Bayroq | Tavsif |
|---|---|
-acc | OpenACC ni yoqadi |
-Minfo=accel | Kompilyatsiya vaqtida GPU ga offload haqida ma’lumot ko‘rsatadi |
-gpu=ccnative,mem:managed | Maqsadni aniqlash uchun yig‘ish muhitidagi GPU ni avtomatik aniqlaydi va Unified Memory dan foydalanadi |
OpenACC bilan GPU uchun yig‘ishning batafsil tartibi uchun GPU bilan yig‘ish ga qarang.