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 प्रयोग गरेर बिल्ड हेर्नुहोस्।