Параллельное программирование с использованием MPI. Антонов (2004) (1186029)
Текст из файла
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.
Характеристики
Тип файла PDF
PDF-формат наиболее широко используется для просмотра любого типа файлов на любом устройстве. В него можно сохранить документ, таблицы, презентацию, текст, чертежи, вычисления, графики и всё остальное, что можно показать на экране любого устройства. Именно его лучше всего использовать для печати.
Например, если Вам нужно распечатать чертёж из автокада, Вы сохраните чертёж на флешку, но будет ли автокад в пункте печати? А если будет, то нужная версия с нужными библиотеками? Именно для этого и нужен формат PDF - в нём точно будет показано верно вне зависимости от того, в какой программе создали PDF-файл и есть ли нужная программа для его просмотра.