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 वापरून बिल्ड पहा.