CMake वापरून बिल्ड करण्याची पद्धत¶
या पृष्ठावर FrontISTR चा स्रोत कोड मिळवण्यापासून बिल्ड आणि इन्स्टॉलेशनपर्यंतची प्रक्रिया स्पष्ट केली आहे. अवलंबी लायब्ररींच्या तपशीलांसाठी आवश्यक आणि ऐच्छिक अवलंबी लायब्ररी पहा.
स्रोत कोड मिळवणे¶
FrontISTR चा स्रोत कोड GitLab किंवा GitHub वरून मिळवता येतो.
# GitLab
git clone https://gitlab.com/FrontISTR-Commons/FrontISTR.git
# GitHub (मिरर)
git clone https://github.com/FrontISTR/FrontISTR.git
बिल्ड प्रक्रिया¶
FrontISTR मध्ये आउट-ऑफ-सोर्स बिल्ड गृहित धरले आहे (स्रोत ट्रीच्या मुळात थेट बिल्ड करणे प्रतिबंधित आहे). build निर्देशिका तयार करून तिच्यामध्ये cmake चालवा.
cd FrontISTR
mkdir build
cd build
cmake -DCMAKE_INSTALL_PREFIX=/usr/local -DWITH_MPI=ON -DWITH_OPENMP=ON ..
make -j$(nproc)
बिल्डनंतर /path/to/FrontISTR/build/fistr1/fistr1 थेट चालवता येते. सिस्टमच्या पथावर (CMAKE_INSTALL_PREFIX) इन्स्टॉल करायचे असल्यास पुढील आदेश अतिरिक्तपणे चालवा.
CMake पर्यायांची यादी¶
"आढळल्यास ON" असे नमूद केलेले पर्याय cmake चालवताना संबंधित लायब्ररी सिस्टमवर सापडल्यास आपोआप सक्षम होतात. -DWITH_XXX=OFF स्पष्टपणे निर्दिष्ट करून ते अक्षम करता येतात.
| पर्याय | पूर्वनिर्धारित | वर्णन |
|---|---|---|
WITH_MPI | ON | MPI समांतरता सक्षम करते |
WITH_OPENMP | आढळल्यास ON | OpenMP थ्रेड समांतरता सक्षम करते |
WITH_METIS | आढळल्यास ON | METIS द्वारे क्षेत्र-विभाजन सक्षम करते |
METIS_VER_4 | OFF | METIS v4 वापरते (OFF असल्यास v5) |
WITH_MUMPS | आढळल्यास ON | MUMPS समांतर थेट-पद्धतीचा सॉल्वर सक्षम करते |
WITH_MKL | आढळल्यास ON | Intel MKL (PARDISO सहित) सक्षम करते |
WITH_LAPACK | आढळल्यास ON | LAPACK द्वारे अट क्रमांक अंदाज सक्षम करते |
WITH_ML | आढळल्यास ON | Trilinos ML द्वारे AMG पूर्वशर्तीकरण सक्षम करते |
WITH_REFINER | आढळल्यास ON | REVOCAP_Refiner द्वारे मेश सूक्ष्मीकरण सक्षम करते |
WITH_REVOCAP | आढळल्यास ON | REVOCAP_Coupler द्वारे संयुक्त विश्लेषण सक्षम करते |
WITH_TOOLS | ON | सोबतची साधने बिल्ड करते |
WITH_DOC | OFF | Doxygen द्वारे API दस्तऐवज तयार करते |
WITH_NETCDF | आढळल्यास ON | Exodus II स्वरूपातील आउटपुट (NetCDF) सक्षम करते |
WINDOWS | OFF | Windows साठी बिल्ड सक्षम करते |
CMAKE_BUILD_TYPE | RELEASE | बिल्ड प्रकार (RELEASE / DEBUG) |
CMAKE_INSTALL_PREFIX | /usr/local | इन्स्टॉलेशन गंतव्य निर्देशिका |
DEBUG_EXTRA | OFF | मेमरी लीक तपासणी सक्षम करते (GCC साठी, -fsanitize=address) |
DEBUG बिल्ड¶
CMAKE_BUILD_TYPE=DEBUG निर्दिष्ट केल्यास कंपाइलरनुसार पुढील डिबग फ्लॅग जोडले जातात.
| कंपाइलर | जोडले जाणारे फ्लॅग |
|---|---|
| GCC | -fbounds-check -fbacktrace |
| Intel | -check uninit,bound -traceback |
GPU वापरून बिल्ड¶
NVIDIA HPC SDK (nvc/nvc++/nvfortran) कंपाइलर म्हणून निर्दिष्ट केल्यास CMake आपोआप पुढील फ्लॅग जोडते.
| फ्लॅग | वर्णन |
|---|---|
-acc | OpenACC सक्षम करते |
-Minfo=accel | कंपाइलच्या वेळी GPU ऑफलोडची माहिती दर्शवते |
-gpu=ccnative,mem:managed | बिल्ड वातावरणातील GPU आपोआप शोधून लक्ष्य ठरवते आणि Unified Memory वापरते |
OpenACC द्वारे GPU बिल्डच्या तपशीलवार प्रक्रियेसाठी GPU वापरून बिल्ड पहा.