विषय पर बढ़ें

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 --build . --target install

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
cmake -DCMAKE_BUILD_TYPE=DEBUG ..

GPU का उपयोग करके बिल्ड

NVIDIA HPC SDK (nvc/nvc++/nvfortran) को कंपाइलर के रूप में निर्दिष्ट करने पर CMake स्वतः निम्न फ़्लैग जोड़ता है।

फ़्लैग विवरण
-acc OpenACC सक्षम करता है
-Minfo=accel कंपाइल समय पर GPU ऑफ़लोडिंग की जानकारी दिखाता है
-gpu=ccnative,mem:managed बिल्ड परिवेश के GPU का स्वतः पता लगाकर लक्ष्य निर्धारित करता है और एकीकृत स्मृति का उपयोग करता है

OpenACC द्वारा GPU बिल्ड की विस्तृत प्रक्रिया के लिए GPU का उपयोग करके बिल्ड देखें।