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 का स्वतः पता लगाकर लक्ष्य निर्धारित करता है और एकीकृत स्मृति का उपयोग करता है |
OpenACC द्वारा GPU बिल्ड की विस्तृत प्रक्रिया के लिए GPU का उपयोग करके बिल्ड देखें।