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 স্বয়ংক্রিয়ভাবে সনাক্ত করে লক্ষ্য নির্ধারণ করে এবং একীভূত মেমরি ব্যবহার করে |
OpenACC-ভিত্তিক GPU বিল্ডের বিস্তারিত পদ্ধতির জন্য GPU ব্যবহার করে বিল্ড দেখুন।