কনটেন্টে যান

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 স্বয়ংক্রিয়ভাবে সনাক্ত করে লক্ষ্য নির্ধারণ করে এবং একীভূত মেমরি ব্যবহার করে

OpenACC-ভিত্তিক GPU বিল্ডের বিস্তারিত পদ্ধতির জন্য GPU ব্যবহার করে বিল্ড দেখুন।