MPI( Message Passing Interface)


MPI (message passing interface)ဆိုတာကေတာ့္ message passing liberary တစ္ခုပါ။ C/C++/Foturn Language ေတြနဲ႕ တြဲဖက္အသံုးၿပဳနိဳင္ပါတယ္။ parallel programmer သမားေတြ အသံုးၿပဳၾကမွာပါ။ ကၽြန္ေတာ္တို႕ window မွာအသံုးၿပဳခ်င္ရင္ VS2010 (Virtual Studio) ကို install ၿပဳလုပ္ၿပီး library ၿပန္လည္ ၿပင္ဆင္ၿပီး အသံုးၿပဳနိဳင္ပါတယ္။ အခု ubuntu မွာ mpi ကို install ၿပဳလုပ္ၿပမွာ ၿဖစ္ပါတယ္။install ၿပဳလုပ္ရန္ ေအာက္ေဖာ္ၿပပါ command line ကိုအသံုးၿပဳပါ။
sudo apt-get install lam-runtime lam4-dev
(တစ္ၿခားေသာ liberary ေတြလည္းရွိပါတယ္ ကၽြန္ေတာ္အခုဟာ ကိုအသံုးၿပဳရတာ အဆင္ေၿပပါတယ္)။

အခု mpi program တစ္ခုကို အစမ္း run ၿပပါမယ္။(c program နဲ႕ပါ)

ပထမဦးစြာ Desktop ေပၚမွာ mpi နာမည္နဲ႕ ဖိုဒါတစ္ခုေဆာက္ၿပီး ေအာက္ေဖာ္ၿပပါ mpi_program တစ္ခုကိုေရးသားၿပီး miet နာမည္နဲ႕ save ၿပဳလုပ္ပါမယ္။

#include<stdio.h>
#include<mpi.h>
main(int argc, char* argv[])
 int rank;
 int size;
MPI_Init(&argc, &argv);
MPI_Common_size(MPI_COMM_WORLD, &size);
MPI_Common_rank(MPI_COMM_WORLD, &rank);
printf("%d,%d: Hello,World!\n",size,rank);
MPI_Finalize();

}
ထို႕ေနာက္ ထို ဖိုင္ရွိရာေနရာသို႕ terminal မွသြားၿပီး complie ၿပဳလုပ္ပါ့မယ္။ေအာက္ေဖာ္ၿပပါ command ကိုအသံုးၿပဳပါမယ္။
mpicc miet.c

(c program မလို႕ mpicc အသံုးၿပဳတာပါ c++ ဆိုရင္ mpic++ ကိုအသံုးၿပဳပါမယ့္)။

complie ၿပဳလုပ္ၿပီးလို႕ error မရွိခဲ့ရင္ a.out ဆိုတဲ့နာမည္နဲ႕ ဖိုင္တစ္ခု ရလာပါလိမ့္မယ္။(ကၽြန္ေတာ္က output ဖိုင္နာမည္ကို မေပးခဲ့တဲ့အတြက္ a ဆိုတဲ့နာမည္နဲ႕default အေနနဲ႕ထြက္လာတာပါ)


ကၽြန္ေတာ္တို႕ complie ၿပဳလုပ္လို႕ရတဲ့ ဖိုင္ကို run ဖို႕အတြက္ ပထမဦးစြာ lamboot ကိုအရင္ေခၚရမွာပါ။ထိုသို႕ lamboot ကိုေခၚယူၿပီးေနာက္ ေအာက္ေဖာ္ၿပပါ command_line ကိုအသံုးၿပဳပါ့မယ္။
mpirun -np 3 a.out
ေအာက္ေဖာ္ၿပပါ output ကိုေတြ႕ၿမင္ ၇မွာပါ။


ဒီေန၇ာမွာ -np ဆိုတဲ့ေနရာ ေနာက္မွာ မိမိအသံုးၿပဳမဲ့ process အေရအတြက္ပါ။ပရိုဂမ္ကိုေတာ့္ရွင္းမၿပေတာ့္ပါဘူး အရွင္းဆံုး program ပါ။parallel program သမားေတြနားလည္သေဘာေပါက္မွာပါ။



No comments:

Post a Comment