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 ကို အလိုအလျောက် စစ်ဆေး၍ ပစ်မှတ် ကို ဆုံးဖြတ်ပြီး Unified Memory ကို အသုံးပြုသည် |
OpenACC ဖြင့် GPU တည်ဆောက်ခြင်း လုပ်နည်းအသေးစိတ်အတွက် GPU ဖြင့် တည်ဆောက်ခြင်း လုပ်ခြင်း ကို ကြည့်ပါ။