विषय पर बढ़ें

CMake के साथ बिल्ड

यह पृष्ठ FrontISTR का स्रोत कोड प्राप्त करने से लेकर बिल्ड और इंस्टॉलेशन तक की प्रक्रिया बताता है। निर्भर लाइब्रेरियों के विवरण के लिए आवश्यक और वैकल्पिक निर्भरताएँ देखें।

स्रोत कोड प्राप्त करना

FrontISTR का स्रोत कोड GitLab या GitHub से प्राप्त किया जा सकता है।

# GitLab
git clone https://gitlab.com/FrontISTR-Commons/FrontISTR.git

# GitHub (mirror)
git clone https://github.com/FrontISTR/FrontISTR.git

बिल्ड प्रक्रिया

FrontISTR out-of-source बिल्ड मानता है (स्रोत ट्री में सीधे बिल्ड करना निषिद्ध है)। 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 offloading की जानकारी दिखाता है
-gpu=ccnative,mem:managed बिल्ड वातावरण में GPU का स्वतः पता लगाकर लक्ष्य निर्धारित करता है और Unified Memory का उपयोग करता है

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