ဒီရက်ပိုင်းတွေမှာ ကျောင်းကဆရာမတွေကိုသတိရနေတာနဲ့ ကျောင်းမှာတုန်းက အမြည်းစမ်းသင်ခဲ့ရတဲ့ Topic လေးတစ်ခုကို ကျွန်တော် share ပေးချင်ပါတယ်...ဒီ content လေးထဲမှာ အမှားတွေပါကောင်းပါနိုင်ပြီး လွဲနေတာလေးတွေ ရှိရင်ရှိမာမို့လို့နားလည်ပေးကြမယ်လို့မျှော်လင့်ပါတယ်...
ကျတော်က MPI အကြောင်းကို အမြည်းကျွေးရုံမျှလောက်သာ သိသလောက်လေးပြောပြပေးသွားမှာဖြစ်ပါတယ်...
MPI ကို Message Passing Interface လို့အရှည်ကောက်ခေါ်ပါတယ်...သူက message passing library တစ်ခုဖြစ်ပြီး.. သူက ဘာကိုအဓိကအလုပ်လုပ်လဲဆိုရင် computer တွေတစ်လုံးနဲ့ တစ်လုံး အချင်းချင်းသူတို့နားလည်တဲ့ format နဲ့ message တွေပို့ကြပြီး...Parallel run ထားတဲ့ process တွေကို အချိန်တိုတို အတွင်းမှာ efficient ကောင်းကောင်းနဲ့ run နိုင်ဖို့ပဲဖြစ်ပါတယ်...ဥပမာ-နားလည်လွယ်အောင်ပြောရရင် computer တစ်လုံးထဲ run ရင် (10) နာရီလောက် ကြာမှ ပြီးနိုင်တဲ့ workload တစ်ခုကို computer (10)လုံးချိတ်ပြီး တစ်နာရီထဲနဲ့ပြီးအောင် run လိုက်တဲ့ သဘောမျိုးနဲ့ဆင်တူပါတယ်...
MPI Programs တွေကို implementation လုပ်တဲ့နေရာမှာ Prgramming Languages အမျိုးမျိုးနဲလုပ်လို့ရပါတယ်...pyMPI ကို python နဲ့ implementation လုပ်ဖို့သုံးပြီး၊ MPI.NET ကို C# နဲ့ implementation လုပ်ဖို့သုံးပါတယ်...
MPI Programs တွေကို cluster နဲ့ချိတ်ပြီး node1 မှာတော့ ဘယ် process ကို runမယ်၊ node2 မှာတော့ ဘယ် process ကိုrun မယ်ဆိုတာမျိုးတွေ implement လုပ်ကြပါတယ်...
MPI ကိုဘယ်မှာအဓိကသုံးလဲဆိုရင် Parallel Computing နဲ့ Monte Carlo Simulations တွေမှာသုံးကြပါတယ်...နောက်ထပ်သုံးတဲ့ နေရာတွေလည်းအများကြီးရှိပါသေးတယ်...
Parallel Computing အကြောင်းကို ကျွန်တော်သိသလောက်လေး နဲနဲပြောပြပါမယ်..
Workload အကြီးကြီး တစ်ခုကို 8Cores 16GB RAM လောက်ရှိတဲ့ Computer တစ်လုံးပေါ်မှာ Run ရင် ဆယ်နာရီလောက်ကြာတယ်ဆိုကြပါစို့ parallel computing methodကို သုံးပြီး run မယ်ဆိုရင် တစ်နာရီလောက်နဲ့မြန်မြန်ပြီးသွားတဲ့ သဘောပါ။Parallel computing methods ကိုသုံးမယ်ဆိုရင် ခုနရှိခဲ့တဲ့ 8Cores 16GB RAM ရှိတဲ့ Computer လိုပဲ နောက်ထပ် Computer တစ်လုံး cluster ချိတ် Process အပိုင်းပိုင်းလေးတွေခွဲပြီး မြန်မြန်ပြီးအောင် run လိုက်တဲ့သဘောပဲဖြစ်ပါတယ်။Parallel Computing ကိုဘာလို့ သုံးလဲလို့မေးလာခဲ့ရင် အချိန်တိုတိုအတွင်းမှာ Computing Power အများကြီးရပြီး Process တစ်ခု မြန်မြန်ပြီးသွားဖို့ပဲဖြစ်ပါတယ်။ဥပမာ - မြန်မာနိုင်ငံမှာ Parallel Computingကိုသုံးဖို့ လုပ်ကြမယ် ဘယ်လို implement လုပ်ကြမလဲ ဆိုကြပါဆို့...Single Datacenter လေးတစ်ခုဆောက်မယ်ပေါ့လေ အဲ့ဒီ datacenter မှာ Core16 RAM32 ရှိတဲ့ Intel Xeon Processor နဲ့ Computer ဆယ်လုံးလောက် rack ထဲမှာ clusterပုံစံ ချိတ်ထားမယ်ပေါ့ဗျာ...ဒါဆိုရင် ကျတော်တို့မှာ Datacenter ရှိသွားပြီဆိုပါတော့... အဲ့အခါကျမှ ကျွန်တော် အပေါ်က mentioned လုပ်ခဲ့တဲ့ MPI Programs တွေနဲ့ချိတ်ဆက်ပြီးတော့ Master မှာတော့ ဘယ်လို Process တွေထားမယ် ဘယ် Node မှာတော့ ဘယ်လို process တွေ run မယ် ဘယ်လို Process တွေ မrun ဘူးဆိုတာမျိုးတွေ စဥ်းစားပြီး workloadကို ဘယ်လို Efficient ဖြစ်အောင်လုပ်မလဲဆိုတာ Implement လုပ်ရမှာပဲ ဖြစ်ပါတယ်။
MPI ဆိုတာဘာလဲ ဘယ်လိုအလုပ်လုပ်လဲဆိုတာ နဲနဲလေးသိသွားပြီလို့ထင်ပါတယ် အဆုံးထိ စိတ်ဝင်တစား ဖတ်ပေးတဲ့အတွက် ကျေးဇူးပါခင်ဗျာ...
Reference link
https://www.dartmouth.edu/~rc/classes/intro_mpi/parallel_prog_compare.html
https://www.investopedia.com/terms/m/montecarlosimulation.asphttps://www.heavy.ai/technical-glossary/parallel-computing
https://ds.cs.luc.edu/mpi/mpi.html
https://www.techtarget.com/searchenterprisedesktop/definition/message-passing-interface-MPI
https://www.dartmouth.edu/~rc/classes/intro_mpi/parallel_prog_compare.html