Skip to content

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 स्वचालित रूपमा पत्ता लगाई लक्ष्य निर्धारण गर्छ र Unified Memory प्रयोग गर्छ

OpenACC द्वारा GPU बिल्डको विस्तृत प्रक्रियाका लागि GPU प्रयोग गरेर बिल्ड हेर्नुहोस्।