Ads 468x60px

Saturday, February 5, 2011

MPI program တည္ေဆာက္ပံု

MPI ဟာ တျခား ကြန္ပ်ဴတာ ဘာသာစကားမ်ားကို မွီခိုရေသာ program အျဖစ္ သိရွိျပီးျဖစ္ပါတယ္ ။ အဲဒါေၾကာင့္ MPI အတြက္အသင့္ေတာ္ဆံုး ျဖစ္တဲ့ C \C++ programming ကို အသံုးျပဳေရးသားပါတယ္ ။ အဲဒီလိုေရးသားရာမွာ C program ရဲ့ format အတိုင္းေရးသားျပီ program အတြင္းမွာ MPI ကို အသံုးျပဳနိုင္ဖို႔အတြက္ MPI ရဲ့ header file (#include "mpi.h") ကို ေၾကညာေပးခဲ့ရပါမယ္ ။ ဒါမွသာ C program အတြင္း MPI ရဲ့ routine ေတြကိုေခၚယူ အသံုးျပဳရမွာ ျဖစ္ပါတယ္ ။ MPI program ရဲ့ တည္ေဆာက္ပံုကေတာ့ ေအာက္ပါအတိုင္းျဖစ္ပါတယ္ ...

တည္ေဆာက္ပံုအတိုင္း ပထမဦးစြာ MPI ရဲ့ header file နဲ႔ C program ရဲ့လိုအပ္တဲ့ header file ကို ေၾကညာပါမယ္ ။ ျပီးေနာက္လိုအပ္တဲ့ ေၾကညာခ်က္ေတြ၊ သတ္မွတ္ခ်က္ေတြကို ေရးသားပါတယ္ ။ အဲေနာက္မွာေတာ့ program ရဲ့ serial ပိုင္းကို စတင္ေရးသားပါတယ္ ။ ထို႔ေနာက္ parallel ပိုင္းအားစတင္ေရးသားရန္ MPI အား စတင္တဲ့ routine အားေခၚယူအသံုးျပဳျပီး parallel အပိုင္းအားစတင္းေရးသားပါတယ္ ။ ထို႔ေနာက္ လုပ္ငန္းေဆာင္တာ မ်ားနဲ႔ message မ်ား ေပးပို႔လက္ခံေဆာင္ရြက္ဖို႔ တျခားလိုအပ္ေသာ MPI routine မ်ားကို ေခၚယူအသံုးျပဳ ေရးသားပါတယ္ ။ အဲဒီလို parallel အပိုင္းအား အျပီး ေရးသားျပိးတဲ့ေနာက္မွာ ကၽြန္ေတာ္တို႔ စတင္ခဲ့တဲ့ MPI အား ရပ္တန္႔ေစရပါမယ္ ။ ဒါမွသာ MPI ဟာဆက္လက္မေဆာင္ရြက္ေတာ့ပဲ ရပ္တန္႔သြားမွာျဖစ္ပါတယ္ ။ MPI ရဲ့ အဆံုးသတ္ျခင္းဟာ parallel ပုိင္းရဲ့အဆံုးသတ္ျခင္းလဲျဖစ္ပါတယ္ ။ အဲလို MPI အားရပ္တန္႔ ဖို႔ MPI ရဲ့ routine ကိုေခၚယူသံုးစြဲျပီးရပ္တန္႔ရပါတယ္ ။ အဲဒီေနာက္မွာေတာ့ C program ရဲ့က်န္ရွိေနေသးတဲ့ serial အပိုင္းအားဆက္လက္ေရးသားျပီ program ကို အဆံုးသတ္ရပါတယ္ ။

အဲဒီလို MPI program တစ္ပုဒ္ေရးသားရာမွာ MPI အား စတင္ျခင္းနဲ႔ အဆံုးသတ္ျခင္းကို အျမဲတမ္းထည့္သြင္းေရးသားေပးရမွာျဖစ္ပါတယ္။ ဒါမွသာ MPI အားစတင္ သံုးစြဲလို႔ရျပီး ၊ သံုးစြဲျခင္းကိုလဲ အဆံုးသတ္လို႔ရမွာျဖစ္ပါတယ္ ။ ေျပာရရင္ေတာ့ MPI ပတ္၀န္းက်င္းနဲ႔ စတင္ျခင္း နဲ႔ MPI ပတ္၀န္းက်င္းအား အဆံုးသတ္ျခင္းအား MPI Environment routines မ်ားကို ေခၚယူ၍ ေဆာင္ရြက္ရပါတယ္ ။ စတင္ ျပိးတဲ့ေနာက္ အဆံုးမသတ္ခင္ထိ MPI ရဲ့ တျခား routine မ်ားကို ေခၚယူ သံုးစြဲပါတယ္ ။ မျဖစ္မေန ထည့္သြင္းေရးသားရမဲ့ MPI စတင္တဲ့ routine ကေတာ့ MPI_Init(&argc,&argv) ျဖစ္ျပီး အဆံုးသတ္တဲ့ routine ကေတာ့ MPI_Finalize() ပဲျဖစ္ပါတယ္ ။

ကၽြန္ေတာ္ routine မ်ားရဲ့ အမ်ိဳးအစားလိုက္ routine မ်ားအေၾကာင္းကို ဆက္လက္ေရးသားျပီ ၊ေရးသားရင္ ဥပမာ program မ်ားကို ေရးသားေဖၚျပသြားပါမယ္ ။ 

No comments:

Post a Comment