Параллельное программирование с использованием MPI. Антонов (2004) (Параллельное программирование с использованием MPI. Антонов (2004).pdf)
Описание файла
PDF-файл из архива "Параллельное программирование с использованием MPI. Антонов (2004).pdf", который расположен в категории "". Всё это находится в предмете "суперкомпьютерное моделирование и технологии" из 11 семестр (3 семестр магистратуры), которые можно найти в файловом архиве МГУ им. Ломоносова. Не смотря на прямую связь этого архива с МГУ им. Ломоносова, его также можно найти и в других разделах. .
Просмотр PDF-файла онлайн
Текст из PDF
Fhkdh\kdbc]hkm^Zjkl\_ggucmgb\_jkbl_lbfF<Ehfhghkh\ZGZmqgh-bkke_^h\Zl_evkdbc\uqbkebl_evgucp_glj:K:glhgh\I:J:EE?EVGH?IJH=J:FFBJH<:GB?KBKIHEVAH<:GB?FL?OGHEH=BBMPIBa^Zl_evkl\hFhkdh\kdh]hmgb\_jkbl_lZ2004M>D681.3.06;;D– 018.2*32.973:J_p_ga_gluaZf^bj_dlhjZGB<PF=Mqe_g-dhjj_kihg^_glJ:G<e<<h_\h^bgaZf^bj_dlhjZGBBYNF=M^hdlhjnbabdh-fZl_fZlbq_kdbogZmd<:Bevbg:glhgh\:K:IZjZee_evgh_ijh]jZffbjh\Zgb_kbkihevah\Zgb_fl_ogheh]bbMPI: Mq_[gh_ihkh[b_–F Ba^-\hF=M–kISBN 5-211-04907-1Ihkh[b_ ij_^gZagZq_gh ^ey hk\h_gby ijZdlbq_kdh]h dmjkZ iZjZee_evgh]hijh]jZffbjh\Zgby k bkihevah\Zgb_f l_ogheh]bb MPI < gZklhys__ \j_fyl_ogheh]by MPI y\ey_lky hkgh\guf kj_^kl\hf ijh]jZffbjh\Zgby ^ey deZkl_jguokbkl_fbdhfivxl_jh\kjZkij_^_e_gghciZfylvxghfh`_lijbf_gylvkylZd`_bgZ \uqbkebl_evguo kbkl_fZo ^jm]bo lbih\ Dmjk \dexqZ_l \ k_[y hibkZgb_[hevrbgkl\Zhkgh\guoijhp_^mjklZg^ZjlZMPI-kijbf_jZfbboijbf_g_gbybijZdlbq_kdb_ k\_^_gby dhlhju_ fh]ml ihlj_[h\Zlvky ijb gZibkZgbb j_Zevguoijh]jZffHkgh\gh_hibkZgb_\_^_lkykbkihevah\Zgb_f\uah\h\ijhp_^mjMPIbaijh]jZff gZ yaud_ NhjljZg h^gZdh mdZaZgu lZd`_ hkgh\gu_ hlebqby \bkihevah\Zgbb \uah\h\ ZgZeh]bqguo nmgdpbc ba ijh]jZff gZ yaud_ KbIjb\h^ylky ijbf_ju g_[hevrbo aZdhgq_gguo iZjZee_evguo ijh]jZff l_dkludhlhjuofh`ghkdZqZlv\k_lbBgl_jg_lkhkljZgbpuhttp://parallel.ru/tech/tech_dev/MPI/examples/ < dhgp_ jZa^_eh\ ijb\h^ylkydhgljhevgu_ \hijhku b aZ^Zgby dhlhju_ fh`gh bkihevah\Zlv \ ijhp_kk_h[mq_gbyIhkh[b_hkgh\ZghgZdmjk_aZgylbcijh\_^_gguoZ\lhjhf\bxg_]h^Z\dhfiZgbb©Rexf[_j`_ª>ey klm^_glh\ ZkibjZglh\ b gZmqguo khljm^gbdh\ qvy ^_yl_evghklvk\yaZgZkiZjZee_evgufb\uqbke_gbyfbM>D;;D– 018.2*32.973Fhkdh\kdbc]hkm^Zjkl\_ggucmgb\_jkbl_lISBN 5-211-04907-12Kh^_j`Zgb_Bg^_dkihnmgdpbyf03,.......................................................................................
4Hkgh\gu_ihgylby................................................................................................... 5H[sb_ijhp_^mju03,........................................................................................... 8AZ^Zgby................................................................................................................ 11I_j_^ZqZijb_fkhh[s_gbcf_`^mhl^_evgufbijhp_kkZfb ......................... 11I_j_^ZqZijb_fkhh[s_gbck[ehdbjh\dhc ...................................................
12I_j_^ZqZijb_fkhh[s_gbc[_a[ehdbjh\db.................................................. 21Hleh`_ggu_aZijhkugZ\aZbfh^_ckl\b_ ....................................................... 30Lmibdh\u_kblmZpbbdeadlock) ....................................................................... 32AZ^Zgby................................................................................................................
34Dhee_dlb\gu_\aZbfh^_ckl\byijhp_kkh\ ......................................................... 36AZ^Zgby................................................................................................................ 47=jmiiubdhffmgbdZlhju .................................................................................... 48Hi_jZpbbk]jmiiZfbijhp_kkh\...................................................................... 48Hi_jZpbbkdhffmgbdZlhjZfb .........................................................................
52AZ^Zgby................................................................................................................ 55<bjlmZevgu_lhiheh]bb ....................................................................................... 55>_dZjlh\Z lhiheh]by ......................................................................................... 56Lhiheh]by ]jZnZ ................................................................................................ 60AZ^Zgby................................................................................................................
62I_j_kuedZjZaghlbiguo^Zgguo ......................................................................... 63Ijhba\h^gu_lbiu^Zgguo............................................................................... 63MiZdh\dZ^Zgguo ............................................................................................... 68AZ^Zgby................................................................................................................ 70Ebl_jZlmjZ .............................................................................................................
713Bg^_dkihnmgdpbyf03,MPI_ADDRESS ................ 66MPI_ALLGATHER .............. 42MPI_ALLGATHERV ............. 42MPI_ALLREDUCE .............. 45MPI_ALLTOALL ............... 42MPI_ALLTOALLV .............. 43MPI_BARRIER ................ 36MPI_BCAST ..................
38MPI_BSEND .................. 14MPI_BSEND_INIT ............. 30MPI_BUFFER_ATTACH .......... 15MPI_BUFFER_DETACH .......... 15MPI_CART_COORDS ............ 58MPI_CART_CREATE ............ 56MPI_CART_GET ............... 59MPI_CART_RANK .............. 58MPI_CART_SHIFT ............. 59MPI_CART_SUB ............... 58MPI_CARTDIM_GET ............ 58MPI_COMM_CREATE ............ 53MPI_COMM_DUP ...............
53MPI_COMM_FREE .............. 54MPI_COMM_GROUP ............. 49MPI_COMM_RANK ............... 9MPI_COMM_SIZE ............... 9MPI_COMM_SPLIT ............. 54MPI_DIMS_CREATE ............ 57MPI_FINALIZE ................ 8MPI_GATHER ................. 39MPI_GATHERV ................ 40MPI_GET_COUNT .............. 19MPI_GET_PROCESSOR_NAME ..... 10MPI_GRAPH_CREATE ........... 60MPI_GRAPH_GET .............. 61MPI_GRAPH_NEIGHBORS ........ 61MPI_GRAPH_NEIGHBORS_COUNT .. 61MPI_GRAPHDIMS_GET .......... 61MPI_GROUP_COMPARE .......... 51MPI_GROUP_DIFFERENCE ....... 50MPI_GROUP_EXCL .............
49MPI_GROUP_FREE ............. 51MPI_GROUP_INCL ............. 49MPI_GROUP_INTERSECTION ..... 50MPI_GROUP_RANK ............. 50MPI_GROUP_SIZE ............. 50MPI_GROUP_TRANSLATE_RANKS .. 51MPI_GROUP_UNION ............ 50MPI_IBSEND ................. 23MPI_INIT .................... 8MPI_INITIALIZED ............. 9MPI_IPROBE ................. 23MPI_IRECV .................. 23MPI_IRSEND ................. 23MPI_ISEND ..................
22MPI_ISSEND ................. 23MPI_OP_CREATE .............. 46MPI_OP_FREE ................ 46MPI_PACK ................... 69MPI_PACK_SIZE .............. 69MPI_PROBE .................. 19MPI_RECV ................... 16MPI_RECV_INIT .............. 30MPI_REDUCE ................. 43MPI_REDUCE_SCATTER .........
45MPI_REQUEST_FREE ........... 31MPI_RSEND .................. 14MPI_RSEND_INIT ............. 30MPI_SCAN ................... 46MPI_SCATTER ................ 40MPI_SCATTERV ............... 41MPI_SEND ................... 12MPI_SEND_INIT .............. 30MPI_SENDRECV ............... 33MPI_SENDRECV_REPLACE .......
34MPI_SSEND .................. 14MPI_SSEND_INIT ............. 30MPI_START .................. 31MPI_STARTALL ............... 31MPI_TEST ................... 27MPI_TESTALL ................ 27MPI_TESTANY ................ 27MPI_TESTSOME ............... 28MPI_TOPO_TEST .............. 56MPI_TYPE_COMMIT ............ 66MPI_TYPE_CONTIGUOUS ........ 64MPI_TYPE_EXTENT ............ 67MPI_TYPE_FREE .............. 66MPI_TYPE_HINDEXED .......... 65MPI_TYPE_HVECTOR ........... 65MPI_TYPE_INDEXED ........... 65MPI_TYPE_LB ................ 67MPI_TYPE_SIZE .............. 66MPI_TYPE_STRUCT ............ 65MPI_TYPE_UB ................ 67MPI_TYPE_VECTOR ............
64MPI_UNPACK ................. 69MPI_WAIT ................... 23MPI_WAITALL ................ 24MPI_WAITANY ................ 25MPI_WAITSOME ............... 25MPI_WTICK .................. 10MPI_WTIME .................. 104Hkgh\gu_ihgylbyGZb[he__jZkijhkljZg_gghcl_ogheh]b_cijh]jZffbjh\Zgby^eyiZjZee_evguo dhfivxl_jh\ k jZkij_^_e_gghc iZfylvx \ gZklhys__ \j_fy y\ey_lky03, Hkgh\guf kihkh[hf \aZbfh^_ckl\by iZjZee_evguo ijhp_kkh\ \ lZdbokbkl_fZoy\ey_lkyi_j_^ZqZkhh[s_gbc^jm]^jm]mWlhbhljZ`_gh\gZa\Zgbb ^Zgghc l_ogheh]bb — 0HVVDJH 3DVVLQJ ,QWHUIDFH bgl_jn_ck i_j_^Zqbkhh[s_gbc KlZg^Zjl MPI nbdkbjm_l bgl_jn_ck dhlhjuc ^he`_gkh[ex^Zlvky dZd kbkl_fhc ijh]jZffbjh\Zgby gZ dZ`^hc \uqbkebl_evghcieZlnhjf_lZdbihevah\Zl_e_fijbkha^Zgbbk\hboijh]jZffKh\j_f_ggu_j_ZebaZpbb qZs_ \k_]hkhhl\_lkl\mxlklZg^Zjlm03,\_jkbb <— ]h^Zo ihy\beky klZg^Zjl 03,- agZqbl_evgh jZkrbjb\rbcnmgdpbhgZevghklvij_^u^ms_c\_jkbbH^gZdh^hkboihjwlhl\ZjbZglMPIg_ihemqberbjhdh]hjZkijhkljZg_gbyb\iheghfh[t_f_g_j_Zebah\ZggbgZ h^ghc kbkl_f_ <_a^_ ^Ze__ _keb bgh]h g_ h]h\hj_gh fu [m^_f bf_lv^_ehkhklZg^ZjlhfMPI-1.1.03, ih^^_j`b\Z_l jZ[hlm k yaudZfb NhjljZg b Kb < ^Zgghf ihkh[bbijbf_jubhibkZgby\k_oijhp_^mj[m^ml^Zgukbkihevah\Zgb_fyaudZNhjljZg H^gZdh wlh kh\_jr_ggh g_ y\ey_lky ijbgpbibZevguf ihkdhevdm hkgh\gu_ b^_b 03, b ijZ\beZ hnhjfe_gby hl^_evguo dhgkljmdpbc ^ey wlboyaudh\\hfgh]hfkoh`bIhegZy\_jkbybgl_jn_ckZkh^_j`blhibkZgb_[he__ ijhp_^mj b nmgdpbcGZrZaZ^ZqZ — h[tykgblvb^_xl_ogheh]bbbihfhqv hk\hblv g_h[oh^bfu_ gZ ijZdlbd_ dhfihg_glu >hihegbl_evgmxbgnhjfZpbx h[ bgl_jn_ck_ MPI fh`gh gZclb gZ l_fZlbq_kdhc kljZgbp_BgnhjfZpbhggh-ZgZeblbq_kdh]h p_gljZ ih iZjZee_evguf \uqbke_gbyf \k_lbBgl_jg_lhttp://parallel.ru/tech/tech_dev/mpi.html.Bgl_jn_ck MPI ih^^_j`b\Z_l kha^Zgb_ iZjZee_evguo ijh]jZff \ klbe_MIMD (Multiple Instruction Multiple Data qlh ih^jZamf_\Z_l h[t_^bg_gb_ijhp_kkh\kjZaebqgufbbkoh^gufbl_dklZfbH^gZdhibkZlvbhleZ`b\ZlvlZdb_ijh]jZffuhq_gvkeh`ghihwlhfmgZijZdlbd_ijh]jZffbklu]hjZa^hqZs_bkihevamxlSPMD-fh^_evSingle Program Multiple Data)iZjZee_evgh]hijh]jZffbjh\Zgby \ jZfdZo dhlhjhc ^ey \k_o iZjZee_evguo ijhp_kkh\ bkihevam_lkyh^bgblhl`_dh^<gZklhys__\j_fy\k_[hevr_b[hevr_j_ZebaZpbcMPIih^^_j`b\ZxljZ[hlmkgblyfbIhkdhevdmMPIy\ey_lky[b[ebhl_dhclhijbdhfibeypbbijh]jZffug_h[oh^bfh ijbebgdh\Zlv khhl\_lkl\mxsb_ [b[ebhl_qgu_ fh^meb Wlh fh`ghk^_eZlv\dhfZg^ghckljhd_beb\hkihevah\Zlvkyij_^mkfhlj_ggufb\[hevrbgkl\_ kbkl_f dhfZg^Zfb beb kdjbilZfb mpicc ^ey ijh]jZff gZ yaud_KbmpiCC^eyijh]jZffgZyaud_Kbbmpif77/mpif90^eyijh]jZffgZyaudZoNhjljZgHipbydhfibeylhjZ³-o name´iha\hey_laZ^Zlvbfy5name^eyihemqZ_fh]h\uihegbfh]hnZceZihmfheqZgbx\uihegbfucnZcegZau\Z_lkya.outgZijbf_jmpif77 -o program program.fIhke_ ihemq_gby \uihegbfh]h nZceZ g_h[oh^bfh aZimklblv _]h gZ lj_[m_fhfdhebq_kl\_ijhp_kkhjh\>eywlh]hh[uqghij_^hklZ\ey_lkydhfZg^ZaZimkdZMPI-ijbeh`_gbcmpirungZijbf_jmpirun -np Nijh]jZffZkZj]mf_glZfb!,]^_ N - qbkeh ijhp_kkh\ dhlhjh_ ^he`gh [ulv g_ [he__ jZaj_r_ggh]h \^Zgghckbkl_f_qbkeZijhp_kkh\^eyh^ghcaZ^ZqbIhke_aZimkdZh^gZblZ`_ijh]jZffZ[m^_l\uihegylvky\k_fbaZims_ggufbijhp_kkZfbj_amevlZl\uiheg_gby \ aZ\bkbfhklb hl kbkl_fu [m^_l \u^Z\Zlvky gZ l_jfbgZe bebaZibku\Zlvky\nZcekij_^hij_^_e_ggufbf_g_f<k_ ^hihegbl_evgu_ h[t_dlu bf_gZ ijhp_^mj dhgklZglu ij_^hij_^_e_ggu_ lbiu ^Zgguo b li bkihevam_fu_ \ 03, bf_xl ij_nbdk MPI_ ?kebihevah\Zl_evg_[m^_lbkihevah\Zlv\ijh]jZff_bf_gklZdbfij_nbdkhflhdhgnebdlh\kh[t_dlZfbMPIaZ\_^hfhg_[m^_l<yaud_Kbdjhf_lh]hy\ey_lkykms_kl\_ggufj_]bkljkbf\heh\\gZa\ZgbyonmgdpbcH[uqgh\gZa\ZgbyonmgdpbcMPIi_j\Zy[md\Zihke_ij_nbdkZ MPI_ibr_lky\\_jog_fj_]bklj_ihke_^mxsb_[md\u–\gb`g_fj_]bklj_ZgZa\ZgbydhgklZglMPIaZibku\Zxlky p_ebdhf \ \_jog_f j_]bklj_ <k_ hibkZgby bgl_jn_ckZ MPIkh[jZgu \ nZce_ mpif.h (mpi.h ihwlhfm \ gZqZe_03,-ijh]jZffu ^he`gZklhylv ^bj_dlb\Z include ‘mpif.h’ (#include “mpi.h” ^ey ijh]jZff gZyaud_KbMPI-ijh]jZffZ — wlh fgh`_kl\h iZjZee_evguo \aZbfh^_ckl\mxsbo ijhp_kkh\ <k_ ijhp_kku ihjh`^Zxlky h^bg jZa h[jZamy iZjZee_evgmx qZklvijh]jZffu < oh^_ \uiheg_gby MPI-ijh]jZffu ihjh`^_gb_ ^hihegbl_evguo ijhp_kkh\ beb mgbqlh`_gb_ kms_kl\mxsbo g_ ^himkdZ_lky \ MPI-2.0lZdZy \hafh`ghklv ihy\beZkv DZ`^uc ijhp_kk jZ[hlZ_l \ k\h_f Z^j_kghfijhkljZgkl\_gbdZdboh[sboi_j_f_gguobeb^Zgguo\MPIg_lHkgh\gufkihkh[hf \aZbfh^_ckl\by f_`^m ijhp_kkZfb y\ey_lky y\gZy ihkuedZ khh[s_gbc>ey ehdZebaZpbb \aZbfh^_ckl\by iZjZee_evguo ijhp_kkh\ ijh]jZffufh`gh kha^Z\Zlv ]jmiiu ijhp_kkh\ ij_^hklZ\eyy bf hl^_evgmx kj_^m ^eyh[s_gby — dhffmgbdZlhj KhklZ\ h[jZam_fuo ]jmii ijhba\he_g =jmiiufh]ml iheghklvx kh\iZ^Zlv \oh^blv h^gZ \ ^jm]mx g_ i_j_k_dZlvky bebi_j_k_dZlvky qZklbqgh Ijhp_kku fh]ml \aZbfh^_ckl\h\Zlv lhevdh \gmljbg_dhlhjh]h dhffmgbdZlhjZ khh[s_gby hlijZ\e_ggu_ \ jZaguodhffmgbdZlhjZog_i_j_k_dZxlkybg_f_rZxl^jm]^jm]mDhffmgbdZlhjubf_xl \ yaud_ NhjljZg lbi INTEGER \ yaud_ Kb – ij_^hij_^_e_gguc lbiMPI_Comm).6IjbklZjl_ijh]jZffu\k_]^ZkqblZ_lkyqlh\k_ihjh`^_ggu_ijhp_kkujZ[hlZxl \ jZfdZo \k_h[t_fexs_]h dhffmgbdZlhjZ bf_xs_]h ij_^hij_^_e_ggh_bfyMPI_COMM_WORLDWlhldhffmgbdZlhjkms_kl\m_l\k_]^Zbkem`bl^ey \aZbfh^_ckl\by \k_o aZims_gguo ijhp_kkh\ MPI-ijh]jZffu Djhf_g_]h ijb klZjl_ ijh]jZffu bf__lky dhffmgbdZlhj MPI_COMM_SELF,kh^_j`Zsbc lhevdh h^bg l_dmsbc ijhp_kk Z lZd`_ dhffmgbdZlhjMPI_COMM_NULL g_ kh^_j`Zsbc gb h^gh]h ijhp_kkZ <k_ \aZbfh^_ckl\byijhp_kkh\ ijhl_dZxl \ jZfdZo hij_^_e_ggh]h dhffmgbdZlhjZ khh[s_gbyi_j_^Zggu_\jZaguodhffmgbdZlhjZogbdZdg_f_rZxl^jm]^jm]mDZ`^uc ijhp_kk MPI-ijh]jZffu bf__l \ dZ`^hc ]jmii_ \ dhlhjmx hg\oh^bl mgbdZevguc Zljb[ml ghf_j ijhp_kkZ dhlhjuc y\ey_lky p_eufg_hljbpZl_evguf qbkehf K ihfhsvx wlh]h Zljb[mlZ ijhbkoh^blagZqbl_evgZy qZklv \aZbfh^_ckl\by ijhp_kkh\ f_`^m kh[hc Ykgh qlh \h^ghfblhf`_dhffmgbdZlhj_\k_ijhp_kkubf_xljZaebqgu_ghf_jZGhihkdhevdm ijhp_kk fh`_l h^gh\j_f_ggh \oh^blv \ jZagu_ dhffmgbdZlhjulh_]hghf_j\h^ghfdhffmgbdZlhj_fh`_lhlebqZlvkyhl_]hghf_jZ\^jm]hf Hlkx^Z klZgh\ylky ihgylgufb ^\Z hkgh\guo Zljb[mlZ ijhp_kkZdhffmgbdZlhjbghf_j\dhffmgbdZlhj_?keb]jmiiZkh^_j`blnijhp_kkh\lhghf_jex[h]hijhp_kkZ\^Zgghc]jmii_e_`bl\ij_^_eZohl^hn – 1.Hkgh\guf kihkh[hf h[s_gby ijhp_kkh\ f_`^m kh[hc y\ey_lky y\gZyihkuedZ khh[s_gbc Khh[s_gb_ — wlh gZ[hj ^Zgguo g_dhlhjh]h lbiZDZ`^h_ khh[s_gb_ bf__l g_kdhevdh Zljb[mlh\ \ qZklghklb ghf_jijhp_kkZ-hlijZ\bl_ey ghf_j ijhp_kkZ-ihemqZl_ey b^_glbnbdZlhjkhh[s_gby b ^jm]b_ H^gbf ba \Z`guo Zljb[mlh\ khh[s_gby y\ey_lky _]hb^_glbnbdZlhj beb lw] Ih b^_glbnbdZlhjm ijhp_kk ijbgbfZxsbckhh[s_gb_ gZijbf_j fh`_l jZaebqblv ^\Z khh[s_gby ijbr_^rb_ d g_fmhl h^gh]h b lh]h `_ ijhp_kkZ KZf b^_glbnbdZlhj khh[s_gby y\ey_lky p_euf g_hljbpZl_evguf qbkehf e_`Zsbf \ ^bZiZahg_ hl 0 ^h MPI_TAG_UP,ijbq_f ]ZjZglbjm_lky qlh MPI_TAG_UP g_ f_gvr_ 32767 >ey jZ[hlu kZljb[mlZfb khh[s_gbc \\_^_g fZkkb\ \ yaud_ Kb – kljmdlmjZ we_f_gludhlhjh]h^Zxl^hklmidboagZq_gbyf< ihke_^g_f Zj]mf_gl_ \ yaud_ Kb – \ \ha\jZsZ_fhf agZq_gbb nmgdpbb[hevrbgkl\hijhp_^mj03,\ha\jZsZxlbgnhjfZpbxh[mki_rghklbaZ\_jr_gby < kemqZ_ mki_rgh]h \uiheg_gby \ha\jZsZ_lky agZq_gb_MPI_SUCCESSbgZq_ – dh^hrb[db<b^hrb[dbdhlhjZyijhbahreZijb\uiheg_gbb ijhp_^mju fh`gh [m^_l hij_^_eblv ba __ hibkZgbyIj_^hij_^_e_ggu_ agZq_gby khhl\_lkl\mxsb_ jZaebqguf hrb[hqgufkblmZpbyfi_j_qbke_gu\nZce_mpif.h.7H[sb_ijhp_^mju03,<^ZgghfjZa^_e_fuhklZgh\bfkygZh[sboijhp_^mjZoMPIg_k\yaZgguoki_j_kuedhc ^Zgguo ;hevrbgkl\h ijhp_^mj wlh]h jZa^_eZ g_h[oh^bfuijZdlbq_kdb\dZ`^hckh^_j`Zl_evghciZjZee_evghcijh]jZff_MPI_INIT(IERR)INTEGER IERRBgbpbZebaZpbyiZjZee_evghcqZklbijh]jZffu<k_^jm]b_ijhp_^mju03,fh]ml [ulv \ua\Zgu lhevdh ihke_ \uah\Z MPI_INIT BgbpbZebaZpby iZjZee_evghc qZklb ^ey dZ`^h]h ijbeh`_gby ^he`gZ \uihegylvky lhevdh h^bgjZa < yaud_ Kb nmgdpbb MPI_Init i_j_^Zxlky mdZaZl_eb gZZj]mf_gludhfZg^ghckljhdbijh]jZffu argcb argvbadhlhjuokbkl_fhcfh]mlba\e_dZlvky b i_j_^Z\Zlvky \ iZjZee_evgu_ ijhp_kku g_dhlhju_ iZjZf_lju aZimkdZijh]jZffuMPI_FINALIZE(IERR)INTEGER IERRAZ\_jr_gb_iZjZee_evghcqZklbijbeh`_gby<k_ihke_^mxsb_h[jZs_gbydex[ufijhp_^mjZf03,\lhfqbke_dMPI_INITaZij_s_guDfhf_glm\uah\Z MPI_FINALIZEdZ`^ufijhp_kkhfijh]jZffu\k_^_ckl\bylj_[mxsb__]hmqZklby\h[f_g_khh[s_gbyfb^he`gu[ulvaZ\_jr_guIjbf_jijhkl_cr_c03,-ijh]jZffugZyaud_NhjljZg\u]ey^blke_^mxsbfh[jZahfprogram example1include ‘mpif.h’integer ierrprint *, ‘Before MPI_INIT’call MPI_INIT(ierr)print *, ‘Parallel section’call MPI_FINALIZE(ierr)print *, ‘After MPI_FINALIZE’end< aZ\bkbfhklb hl j_ZebaZpbb MPI kljhqdb ‘Before MPI_INIT’ b ‘AfterMPI_FINALIZE’fh`_li_qZlZlveb[hh^bg\u^_e_ggucijhp_kkeb[h\k_aZims_ggu_ijhp_kkuijbeh`_gbyKljhqdm ‘Parallel section’^he`gugZi_qZlZlv \k_ ijhp_kku Ihjy^hd \u\h^Z kljhd k jZaguo ijhp_kkh\ fh`_l[ulvijhba\hevgufH[sZy ko_fZ 03,-ijh]jZffu gZ yaud_ Kb \u]ey^bl ijbf_jgh ke_^mxsbfh[jZahf8#include “mpi.h”main(int argc, char **argv){…MPI_Init(&argc, &argv);…MPI_Finalize();…}>jm]b_iZjZee_evgu_ijh]jZffugZyaud_Kbkbkihevah\Zgb_fl_ogheh]bbMPI fh`gh gZclb gZijbf_j \ <uqbkebl_evghf iheb]hg_http://polygon.parallel.ru.MPI_INITIALIZED(FLAG, IERR)LOGICAL FLAGINTEGER IERRIjhp_^mjZ \ha\jZsZ_l \ Zj]mf_gl_ FLAG agZq_gb_ .TRUE.