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 विकल्प¶
जिन विकल्पों का डिफ़ॉल्ट "पता चलने पर 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 offloading की जानकारी दिखाता है |
-gpu=ccnative,mem:managed |
बिल्ड वातावरण में GPU का स्वतः पता लगाकर लक्ष्य निर्धारित करता है और Unified Memory का उपयोग करता है |
OpenACC के साथ GPU बिल्ड की विस्तृत प्रक्रिया के लिए GPU के साथ बिल्ड देखें।