www.wikidata.uk-ua.nina.az
MPI angl Message Passing Interface Interfejs peredachi povidomlen ce specifikaciya sho bula rozroblena v 1993 1994 rokah grupoyu MPI Forum 1 i zabezpechuye realizaciyu modeli obminu povidomlennyami mizh procesami Ostannya versiya ciyeyi specifikaciyi MPI 2 U modeli programuvannya MPI programa porodzhuye kilka procesiv sho vzayemodiyut mizh soboyu za dopomogoyu vikliku pidprogram prijomu j peredachi povidomlen Zazvichaj pri inicializaciyi MPI programi stvoryuyetsya fiksovanij nabir procesiv prichomu sho utim neobov yazkovo kozhnij z nih vikonuyetsya na svoyemu procesori U cih procesah mozhut vikonuvatisya rizni programi tomu MPI model inodi nazivayut MIMD modellyu Multiple Instruction Multiple Data na vidminu vid SIMD modeli de na kozhnomu procesori vikonuyutsya tilki odnakovi zadachi MPI pidtrimuye dvohtochkovi j globalni sinhronni j asinhronni blokuyuchi j neblokuyuchi tipi komunikacij Specialnij mehanizm komunikator hovaye vid programista vnutrishni komunikacijni strukturi Struktura komunikacij mozhe zminyuvatisya protyagom chasu zhittya procesu ale kilkist zadach maye zalishatisya postijnoyu MPI 2 pidtrimuye dinamichnu zminu kilkosti zadach Specifikaciya MPI zabezpechuye perenosimist program na rivni vihidnih kodiv Pidtrimuyetsya robota na geterogennih klasterah i simetrichnih multiprocesornih sistemah Ne pidtrimuyetsya zapusk procesiv pid chas vikonannya MPI programi U specifikaciyi vidsutni opis paralelnogo vvodu vivodu j nalagodzhennya program ci mozhlivosti mozhut buti vklyucheni do skladu konkretnoyi realizaciyi MPI u viglyadi dodatkovih paketiv chi utilit Sumisnist riznih realizacij ne garantuyetsya Vazhlivoyu vlastivistyu paralelnoyi programi ye determinizm programa maye zavzhdi davati odnakovij rezultat dlya odnakovih naboriv vhidnih danih Model peredachi povidomlen zagalom takoyi vlastivosti ne maye oskilki ne viznacheno poryadok oderzhannya povidomlen vid dvoh procesiv tretim Yaksho zh odin proces poslidovno nadsilaye kilka povidomlen inshomu procesu MPI garantuye sho oderzhuvach otrimaye yih same v tomu poryadku u yakomu voni buli nadislani Vidpovidalnist za zabezpechennya determinovanogo vikonannya programi pokladayetsya na programista Zmist 1 MPI programa 2 Terminologiya i poznachennya 3 Standarti MPI 4 Funkcionuvannya interfejsu 5 Realizaciyi MPI 6 Zagalni proceduri MPI 7 Prijom peredacha povidomlen mizh okremimi procesami 7 1 Prijom peredacha povidomlen z blokuvannyam 7 2 Prijom peredacha povidomlen bez blokuvannya 8 Sinhronizaciya procesiv 9 Viznacheni konstanti 10 Div takozh 11 Primitki 12 PosilannyaMPI programa red include lt mpi h gt ochevidno include lt stdio h gt int main int argc char argv int myrank size MPI Init amp argc amp argv Inicializaciya MPI MPI Comm size MPI COMM WORLD amp size Rozmir komunikatora MPI Comm rank MPI COMM WORLD amp myrank Oderzhuyemo nash nomer printf Proc d of d n myrank size MPI Finalize Finalizaciya MPI puts Done return 0 Pered viklikom bud yakoyi proceduri MPI potribno viklikati inicializaciyu MPI Init pered cim viklikom mozhe zdijsnyuvatisya tilki viklik MPI Initialized MPI Init krim usogo inshogo stvoryuye globalnij komunikator MPI COMM WORLD cherez kotrij bude prohoditi obmin povidomlennyami Oblast vzayemodiyi komunikatora MPI COMM WORLD usi procesi danoyi programi Yaksho ye neobhidnist u rozbivci oblasti vzayemodiyi na dribnishi segmenti chastkovo shirokomovni rozsilannya vikoristovuyutsya vikliki MPI Comm dup create split etc tut ne rozglyadayutsya Rozmir komunikatora oderzhuvanij viklikom MPI Comm size chislo procesiv u nomu Rozmir komunikatora MPI COMM WORLD zagalne chislo procesiv Kozhen proces maye svij unikalnij u mezhah komunikatora nomer rang Rangi procesiv u kontekstah riznih komunikatoriv mozhut vidriznyatisya Pislya vikonannya vsih obminiv povidomlennyami v programi maye zdijsnyuvatisya viklik MPI Finalize procedura vidalyaye vsi strukturi danih MPI i robit inshi neobhidni diyi Programist maye sam podbati pro te shob do momentu vikliku MPI Finalize usi peresilannya danih bulo zaversheno Pislya vikonannya MPI Finalize viklik bud yakih krim MPI Initialized procedur navit MPI Init nemozhlivij Programa vivodit povidomlennya vid usih porodzhenih neyu procesiv Priklad vivodu poryadok povidomlen sho nadhodyat vid procesiv mozhe zminyuvatisya navedenij nizhche np kilkist procesiv Proc 1 of 3 Done Proc 0 of 3 Done Proc 2 of 3 Done Zvernit uvagu sho pislya vikliku MPI Finalize parelelna robota ne zakinchuyetsya Done vivoditsya kozhnim procesom Terminologiya i poznachennya red Nomer procesu cile nevid yemne chislo sho ye unikalnim atributom kozhnogo procesu Atributi povidomlennya nomer procesu vidpravnika nomer procesu oderzhuvacha i identifikator povidomlennya Dlya nih zavedena struktura MPI Status sho mistit tri polya MPI Source nomer procesu vidpravnika MPI Tag identifikator povidomlennya MPI Error kod pomilki mozhut buti i dodatkovi polya Identifikator povidomlennya msgtag atribut povidomlennya sho ye cilim nevid yemnim chislom u diapazoni vid 0 do 32767 Procesi ob yednuyutsya v grupi mozhut buti vkladeni grupi Useredini grupi vsi procesi perenumerovani Z kozhnoyu grupoyu asocijovanij svij komunikator Tomu pri zdijsnenni peresilannya neobhidno vkazati identifikator grupi vseredini yakoyi provoditsya cya peresilka Vsi procesi mistyatsya v grupi z napered viznachenim identifikatorom MPI COMM WORLD Standarti MPI red Persha versiya MPI rozroblyalasya v 1993 1994 roci i MPI 1 vijshla v 1994 Bilshist suchasnih realizacij MPI pidtrimuyut versiyu 1 1 Standart MPI versiyi 2 0 pidtrimuyetsya bilshistyu suchasnih realizacij ale deyaki funkciyi mozhut buti realizovani ne do kincya U MPI 1 1 opublikovanij 12 chervnya 1995 persha realizaciya z yavilasya v 2002 roci pidtrimuyutsya nastupni funkciyi peredacha i otrimannya povidomlen mizh okremimi procesami kolektivni vzayemodiyi procesiv vzayemodiyi v grupah procesiv realizaciya topologij procesiv U MPI 2 0 opublikovanij 18 lipnya 1997 dodatkovo pidtrimuyutsya nastupni funkciyi dinamichne porodzhennya procesiv i upravlinnya procesami odnostoronni komunikaciyi Get Put paralelnij vvedennya i vivedennya rozshireni kolektivni operaciyi procesi mozhut vikonuvati kolektivni operaciyi ne tilki vseredini odnogo komunikatora ale j u ramkah dekilkoh komunikatoriv Versiya MPI 2 1 vijshla na pochatku veresnya 2008 roku Versiya MPI 2 2 vijshla 4 veresnya 2009 Versiya MPI 3 0 vijshla 21 veresnya 2012 roku Funkcionuvannya interfejsu red Bazovim mehanizmom zv yazku mizh MPI procesami ye peredacha i prijom povidomlen Povidomlennya nese v sobi peredani dani i informaciyu sho dozvolyaye prijmayuchij storoni zdijsnyuvati yih vibirkovij prijom vidpravnik rang nomer u grupi vidpravnika povidomlennya oderzhuvach rang oderzhuvacha oznaka mozhe vikoristovuvatisya dlya rozdilennya riznih vidiv povidomlen komunikator kod grupi procesiv Operaciyi prijomu j peredachi mozhut buti blokuyuchi i neblokuyuchi Dlya neblokuyuchih operacij viznacheni funkciyi perevirki gotovnosti j ochikuvannya vikonannya operaciyi Inshim sposobom zv yazku ye viddalenij dostup do pam yati RMA sho dozvolyaye chitati i zminyuvati oblast pam yati viddalenogo procesu Lokalnij proces mozhe perenositi oblast pam yati viddalenogo procesu vseredini zaznachenogo procesami vikna v svoyu pam yat i nazad a takozh kombinuvati dani peredani u viddalenij proces z nayavnimi v jogo pam yati danimi napriklad shlyahom pidsumovuvannya Vsi operaciyi viddalenogo dostupu do pam yati ne blokuyutsya odnak do i pislya yih vikonannya neobhidno viklikati blokuyuchi funkciyi sinhronizaciyi Realizaciyi MPI red MPICH najposhirenisha bezkoshtovna realizaciya pracyuye na UNIX sistemi i Windows NT LAM MPI she odna bezkoshtovna realizaciya MPI Pidtrimuye geterogenni konfiguraciyi LAM pidtrimuye geterogenni konfiguraciyi paket Globus i zadovolnyaye IMPI Interoperable MPI WMPI realizaciya MPI dlya Windows MPI PRO For Windows NT komercijna realizaciya dlya Windows NT Intel MPI komercijna realizaciya dlya Windows Linux Microsoft MPI vhodit do skladu Compute Cluster Pack SDK Zasnovanij na MPICH2 ale vklyuchaye dodatkovi zasobi upravlinnya zavdannyami Pidtrimuyetsya specifikaciya MPI 2 HP MPI komercijna realizaciya vid HP SGI MPT platna biblioteka MPI vid SGI Mvapich bezkoshtovna realizaciya MPI dlya Infiniband Open MPI bezkoshtovna realizaciya MPI spadkoyemec LAM MPI Oracle HPC ClusterTools bezkoshtovna realizaciya dlya Solaris SPARC x86 i Linux na osnovi Open MPI MPJ MPI for Java MPJ Express MPI na JavaZagalni proceduri MPI red int MPI Init INT ARGC char ARGV MPI Init inicializaciya paralelnoyi chastini programi Realna inicializaciya dlya kozhnogo dodatka vikonuyetsya ne bilshe odnogo razu a yaksho MPI vzhe buv inicializovanij to niyaki diyi ne vikonuyutsya i vidbuvayetsya negajne povernennya z pidprogrami Vsi inshi MPI proceduri mozhut buti viklikani tilki pislya vikliku MPI Init Povertaye u razi uspishnogo vikonannya MPI SUCCESS inakshe kod pomilki Te zh same povertayut i vsi inshi funkciyi MPI vkazani nizhche int MPI Finalize void MPI Finalize zavershennya paralelnoyi chastini programi Vsi nastupni zvernennya do bud yakih MPI procedur zokrema do MPI Init zaboroneno Do momentu vikliku yakimos procesom MPI Finalize maye buti zaversheno vsi diyi sho vimagayut jogo uchasti v obmini povidomlennyami int MPI Comm size MPI Comm comm int size Pokazuye rozmir kilkist paralelnih procesiv grupi asocijovanoyi z komunikatorom comm komunikator identifikator grupi int size rozmir grupiPrijom peredacha povidomlen mizh okremimi procesami red Prijom peredacha povidomlen z blokuvannyam red int MPI Send void buf int count MPI Datatype datatype int dest int msgtag MPI Comm comm buf adresa pochatku bufera posilki povidomlennya count chislo peredanih elementiv u povidomlenni datatype tip peredanih elementiv dest nomer procesu oderzhuvacha msgtag identifikator povidomlennya comm identifikator grupiBlokuyuche nadsilannya povidomlennya z identifikatorom msgtag sho skladayetsya z count elementiv tipu datatype procesu z nomerom dest Vsi elementi povidomlennya roztashovani pospil v buferi buf Znachennya count mozhe buti nulem Tip peredanih elementiv datatype povinen vkazuvatisya za dopomogoyu zumovlenih konstant tipu Dozvolyayetsya peredavati povidomlennya samomu sobi Blokuvannya garantuye korektnist povtornogo vikoristannya vsih parametriv pislya povernennya z pidprogrami Vibir sposobu zdijsnennya ciyeyi garantiyi kopiyuvannya v promizhnij bufer abo bezposerednya peredacha procesu dest zalishayetsya za MPI Slid specialno zaznachiti sho povernennya z pidprogrami MPI Send ne znachit ni togo sho povidomlennya vzhe peredano procesu dest ni navit togo sho povidomlennya zalishilo procesor z yakogo jogo bulo nadislano Prijom peredacha povidomlen bez blokuvannya red int MPI Isend void buf int count MPI Datatype datatype int dest int msgtag MPI Comm comm MPI Request request Peredacha povidomlennya analogichna MPI Send prote povernennya z pidprogrami vidbuvayetsya vidrazu pislya inicializaciyi procesu peredachi bez ochikuvannya obrobki vsogo povidomlennya sho u buferi buf Ce oznachaye sho ne mozhna povtorno vikoristovuvati danij bufer dlya inshih cilej bez otrimannya dodatkovoyi informaciyi pro zavershennya danoyi posilki Zakinchennya procesu peredachi tobto togo momentu koli mozhna perevikoristati bufer buf bez poboyuvannya zipsuvati peredane povidomlennya mozhna viznachiti za dopomogoyu parametra request i procedur MPI Wait i MPI Test Povidomlennya vidpravlene bud yakoyu z procedur MPI Send i MPI Isend mozhe buti prijnyate bud yakoyu z procedur MPI Recv i MPI IrecvSinhronizaciya procesiv red int MPI Barrier MPI Comm comm comm identifikator grupiBlokuye robotu procesiv sho viklikali danu proceduru doki vsi inshi procesi grupi comm takozh ne vikonayut cyu proceduru Viznacheni konstanti red Konstanti MPI Tip v CMPI CHAR signed charMPI SHORT signed intMPI INT signed intMPI LONG signed long intMPI UNSIGNED CHAR unsigned charMPI UNSIGNED SHORT unsigned intMPI UNSIGNED unsigned intMPI FLOAT floatDiv takozh red MPICH LAM MPI Open MPI Intel MPI HP MPI Microsoft Messaging Passing Interface OpenMP SHMEMPrimitki red Arhivovana kopiya Arhiv originalu za 5 travnya 2021 Procitovano 6 kvitnya 2010 Posilannya red MPI Forum Arhivovano 5 travnya 2021 u Wayback Machine and MPI specification Arhivovano 15 kvitnya 2006 u Wayback Machine Message Passing Interface katalog posilan Open Directory Project Platform MPI Arhivovano 11 travnya 2009 u Wayback Machine Open MPI web site Arhivovano 2 lipnya 2006 u Wayback Machine LAM MPI web site Arhivovano 7 kvitnya 2010 u Wayback Machine MPICH Arhivovano 15 chervnya 2004 u Wayback Machine SCore MPI Arhivovano 23 grudnya 2009 u Wayback Machine Parawiki page for MPI PVM MPI Users Group Meeting 2006 edition Arhivovano 10 bereznya 2010 u Wayback Machine MPI tutorials and other documents 1 Arhivovano 3 bereznya 2009 u Wayback Machine MPI Samples Arhivovano 5 travnya 2006 u Wayback Machine Supercomputing Simplified Arhivovano 25 sichnya 2021 u Wayback Machine MPI Tutorial nbsp Ce nezavershena stattya pro programuvannya Vi mozhete dopomogti proyektu vipravivshi abo dopisavshi yiyi Cya stattya potrebuye dodatkovih posilan na dzherela dlya polipshennya yiyi perevirnosti Bud laska dopomozhit udoskonaliti cyu stattyu dodavshi posilannya na nadijni avtoritetni dzherela Zvernitsya na storinku obgovorennya za poyasnennyami ta dopomozhit vipraviti nedoliki Material bez dzherel mozhe buti piddano sumnivu ta vilucheno sichen 2017 Cyu stattyu treba vikifikuvati dlya vidpovidnosti standartam yakosti Vikipediyi Bud laska dopomozhit dodavannyam dorechnih vnutrishnih posilan abo vdoskonalennyam rozmitki statti sichen 2017 Otrimano z https uk wikipedia org w index php title Message Passing Interface amp oldid 35668067