အကြောင်းအရာသို့ ကရန်

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 ဖြင့် တည်ဆောက်ခြင်း လုပ်ခြင်း ကို ကြည့်ပါ။