Главная » Все файлы » Просмотр файлов из архивов » PDF-файлы » Параллельное программирование с использованием MPI. Антонов (2004)

Параллельное программирование с использованием MPI. Антонов (2004) (Параллельное программирование с использованием MPI. Антонов (2004).pdf), страница 4

PDF-файл Параллельное программирование с использованием MPI. Антонов (2004) (Параллельное программирование с использованием MPI. Антонов (2004).pdf), страница 4 Суперкомпьютерное моделирование и технологии (64251): Книга - 11 семестр (3 семестр магистратуры)Параллельное программирование с использованием MPI. Антонов (2004) (Параллельное программирование с использованием MPI. Антонов (2004).pdf) - PDF, стр2020-08-25СтудИзба

Описание файла

PDF-файл из архива "Параллельное программирование с использованием MPI. Антонов (2004).pdf", который расположен в категории "". Всё это находится в предмете "суперкомпьютерное моделирование и технологии" из 11 семестр (3 семестр магистратуры), которые можно найти в файловом архиве МГУ им. Ломоносова. Не смотря на прямую связь этого архива с МГУ им. Ломоносова, его также можно найти и в других разделах. .

Просмотр PDF-файла онлайн

Текст 4 страницы из PDF

0) thenif(n .eq. 0) thenprint *, 'latency = ', time, ' seconds'elseprint *, 8*n, ' bytes, bandwidth =', bandwidth,&' Mb/s'end ifend ifif(n .eq. 0) thenn = 1elsen = 2*nend ifend doif(rank .eq. 0) thenprint *, 'max bandwidth =', max, ' Mb/s , length =',&lmax, ' bytes'end ifcall MPI_FINALIZE(ierr)endI_j_^ZqZijb_fkhh[s_gbc[_a[ehdbjh\db< MPI ij_^mkfhlj_g gZ[hj ijhp_^mj ^ey hkms_kl\e_gby Zkbgojhgghci_j_^Zqb^Zgguo<hlebqb_hl[ehdbjmxsboijhp_^mj\ha\jZlbaijhp_^mj^Zgghc]jmiiuijhbkoh^blkjZamihke_\uah\Z[_adZdhc-eb[hhklZgh\dbjZ[hlu ijhp_kkh\ GZ nhg_ ^Zevg_cr_]h \uiheg_gby ijh]jZffu h^gh\j_f_gghijhbkoh^blbh[jZ[hldZZkbgojhgghaZims_gghchi_jZpbb21< ijbgpbi_ ^ZggZy \hafh`ghklv bkdexqbl_evgh ihe_agZ ^ey kha^Zgby wnn_dlb\guo ijh]jZff < kZfhf ^_e_ ijh]jZffbkl agZ_l qlh \ g_dhlhjucfhf_gl_fmihlj_[m_lkyfZkkb\dhlhjuc\uqbkey_l^jm]hcijhp_kkHgaZjZg__ \uklZ\ey_l \ ijh]jZff_ Zkbgojhgguc aZijhk gZ ihemq_gb_ ^Zggh]hfZkkb\ZZ^hlh]hfhf_glZdh]^ZfZkkb\j_Zevghihlj_[m_lkyhgfh`_l\uihegylv ex[mx ^jm]mx ihe_agmx jZ[hlm Hiylv `_ \h fgh]bo kemqZyo kh\_jr_gghg_h[yaZl_evgh^h`b^ZlvkyhdhgqZgbyihkuedbkhh[s_gby^ey\uiheg_gby ihke_^mxsbo \uqbke_gbc >ey aZ\_jr_gby Zkbgojhggh]h h[f_gZlj_[m_lky \uah\ ^hihegbl_evghc ijhp_^mju dhlhjZy ijh\_jy_l aZ\_jrbeZkvebhi_jZpbybeb^h`b^Z_lky__aZ\_jr_gbyLhevdhihke_wlh]hfh`ghbkihevah\Zlv [mn_j ihkuedb ^ey ^jm]bo p_e_c [_a hiZk_gby aZihjlblv hlijZ\ey_fh_khh[s_gb_?keb _klv \hafh`ghklv hi_jZpbb ijb_fZi_j_^Zqb khh[s_gbc kdjulv gZnhg_\uqbke_gbclhwlbf\jh^_[ugZ^h[_ah]h\hjhqghihevah\ZlvkyH^gZdh gZ ijZdlbd_ g_ \k_ \k_]^Z kh]eZkm_lky k l_hjb_c Fgh]h_ aZ\bkbl hldhgdj_lghcj_ZebaZpbbDkh`Ze_gbx^Ze_dhg_\k_]^ZZkbgojhggu_hi_jZpbb wnn_dlb\gh ih^^_j`b\Zxlky ZiiZjZlmjhc b kbkl_fguf hdjm`_gb_fIhwlhfm g_ klhbl m^b\eylvky _keb wnn_dl hl \uiheg_gby \uqbke_gbc gZnhg_ i_j_kuehd hdZ`_lky gme_\uf beb kh\k_f g_[hevrbf K^_eZggu_aZf_qZgby dZkZxlky lhevdh \hijhkh\ wnn_dlb\ghklb < hlghr_gbbij_^hklZ\ey_fhc nmgdpbhgZevghklb Zkbgojhggu_ hi_jZpbb bkdexqbl_evghihe_agu ihwlhfm hgb ijbkmlkl\mxl ijZdlbq_kdb \ dZ`^hc j_Zevghcijh]jZff_MPI_ISEND(BUF, COUNT, DATATYPE, DEST, MSGTAG, COMM, REQUEST,IERR)<type> BUF(*)INTEGER COUNT, DATATYPE, DEST, MSGTAG, COMM, REQUEST, IERRG_[ehdbjmxsZy ihkuedZ ba [mn_jZ BUF COUNT we_f_glh\ khh[s_gby lbiZDATATYPE k b^_glbnbdZlhjhf MSGTAG ijhp_kkm DEST dhffmgbdZlhjZ COMM.<ha\jZlbaijhp_^mjuijhbkoh^blkjZamihke_bgbpbZebaZpbbijhp_kkZi_j_^Zqb [_a h`b^Zgby h[jZ[hldb \k_]h khh[s_gby gZoh^ys_]hky \ [mn_j_BUFWlhhagZqZ_lqlhg_evayih\lhjghbkihevah\Zlv^Zgguc[mn_j^ey^jm]bop_e_c[_aihemq_gby^hihegbl_evghcbgnhjfZpbbih^l\_j`^Zxs_caZ\_jr_gb_ ^Zgghc ihkuedb Hij_^_eblv lhl fhf_gl \j_f_gb dh]^Z fh`ghih\lhjghbkihevah\Zlv[mn_j BUF[_ahiZk_gbybkihjlblvi_j_^Z\Z_fh_khh[s_gb_ fh`gh k ihfhsvx \ha\jZsZ_fh]h iZjZf_ljZ REQUEST b ijhp_^mjk_f_ckl\ MPI_WAIT b MPI_TEST IZjZf_lj REQUEST bf__l \ yaud_ NhjljZglbi INTEGER\yaud_Kb–ij_^hij_^_e_gguclbi MPI_Requestbbkihevam_lky^eyb^_glbnbdZpbbdhgdj_lghcg_[ehdbjmxs_chi_jZpbb:gZeh]bqgh lj_f fh^bnbdZpbyf ijhp_^mju MPI_SEND ij_^mkfhlj_gu ljb^hihegbl_evguo\ZjbZglZijhp_^mjuMPI_ISEND:22• MPI_IBSEND — g_[ehdbjmxsZyi_j_^ZqZkhh[s_gbyk[mn_jbaZpb_c• MPI_ISSEND — g_[ehdbjmxsZyi_j_^ZqZkhh[s_gbykkbgojhgbaZpb_c• MPI_IRSEND — g_[ehdbjmxsZyi_j_^ZqZkhh[s_gbyih]hlh\ghklbDbaeh`_gghc\ur_k_fZglbd_jZ[hluwlboijhp_^mj^h[Z\ey_lkyhlkmlkl\b_[ehdbjh\dbMPI_IRECV(BUF, COUNT, DATATYPE, SOURCE, MSGTAG, COMM, REQUEST,IERR)<type> BUF(*)INTEGER COUNT, DATATYPE, SOURCE, MSGTAG, COMM, REQUEST, IERRG_[ehdbjmxsbc ijb_f \ [mn_j BUF g_ [he__ COUNT we_f_glh\ khh[s_gbylbiZ DATATYPEkb^_glbnbdZlhjhf MSGTAG hlijhp_kkZkghf_jhf SOURCE\dhffmgbdZlhj_ COMM k aZiheg_gb_f fZkkb\Z STATUS < hlebqb_ hl [ehdb-jmxs_]hijb_fZ\ha\jZlbaijhp_^mjuijhbkoh^blkjZamihke_bgbpbZebaZpbbijhp_kkZijb_fZ[_ah`b^Zgbyihemq_gby\k_]hkhh[s_gbyb_]haZibkb\[mn_j_BUFHdhgqZgb_ijhp_kkZijb_fZfh`ghhij_^_eblvkihfhsvxiZjZf_ljZREQUESTbijhp_^mjk_f_ckl\MPI_WAIT bMPI_TEST.Khh[s_gb_hlijZ\e_ggh_ex[hcbaijhp_^mjMPI_SEND, MPI_ISENDbex[hcbalj_obofh^bnbdZpbcfh`_l[ulvijbgylhex[hcbaijhp_^mj MPI_RECVbMPI_IRECV.H[jZlbf hkh[h_ \gbfZgb_ gZ lh qlh ^h aZ\_jr_gby g_[ehdbjmxs_chi_jZpbbg_ke_^m_laZibku\Zlv\bkihevam_fucfZkkb\^ZgguoMPI_IPROBE(SOURCE, MSGTAG, COMM, FLAG, STATUS, IERR)LOGICAL FLAGINTEGER SOURCE, MSGTAG, COMM, IERR, STATUS(MPI_STATUS_SIZE)Ihemq_gb_ \ fZkkb\_ STATUS bgnhjfZpbb h kljmdlmj_ h`b^Z_fh]h khh[s_gby k b^_glbnbdZlhjhf MSGTAG hl ijhp_kkZ k ghf_jhf SOURCE \dhffmgbdZlhj_ COMM [_a [ehdbjh\db < iZjZf_lj_ FLAG \ha\jZsZ_lkyagZq_gb_ .TRUE.

_keb khh[s_gb_ k ih^oh^ysbfb Zljb[mlZfb m`_ fh`_l[ulv ijbgylh \ wlhf kemqZ_ ^_ckl\b_ ijhp_^mju iheghklvx ZgZeh]bqghMPI_PROBEbagZq_gb_ .FALSE._kebkhh[s_gbykmdZaZggufbZljb[mlZfb_s_g_lMPI_WAIT(REQUEST, STATUS, IERR)INTEGER REQUEST, IERR, STATUS(MPI_STATUS_SIZE)H`b^Zgb_aZ\_jr_gbyZkbgojhgghchi_jZpbbZkkhpbbjh\Zgghckb^_glbnbdZlhjhf REQUEST b aZims_gghc \uah\hf ijhp_^mju MPI_ISEND bebMPI_IRECVIhdZZkbgojhggZyhi_jZpbyg_[m^_laZ\_jr_gZijhp_kk\uihegb\rbc ijhp_^mjm MPI_WAIT [m^_l aZ[ehdbjh\Zg >ey hi_jZpbbg_[ehdbjmxs_]hijb_fZhij_^_ey_lkyiZjZf_lj STATUSIhke_\uiheg_gby23ijhp_^mjub^_glbnbdZlhjg_[ehdbjmxs_cmklZgZ\eb\Z_lky\agZq_gb_MPI_REQUEST_NULL.hi_jZpbbREQUESTMPI_WAITALL(COUNT, REQUESTS, STATUSES, IERR)INTEGER COUNT, REQUESTS(*), STATUSES(MPI_STATUS_SIZE,*), IERRH`b^Zgb_ aZ\_jr_gby COUNT Zkbgojhgguo hi_jZpbc Zkkhpbbjh\Zgguo kb^_glbnbdZlhjZfb fZkkb\Z REQUESTS >ey hi_jZpbc g_[ehdbjmxsboijb_fh\ hij_^_eyxlky khhl\_lkl\mxsb_ iZjZf_lju \ fZkkb\_ STATUSES.?keb\h\j_fyh^ghcbebg_kdhevdbohi_jZpbch[f_gZ\hagbdebhrb[dblhihe_ hrb[db \ we_f_glZo fZkkb\Z STATUSES [m^_l mklZgh\e_gh \khhl\_lkl\mxs__agZq_gb_Ihke_\uiheg_gbyijhp_^mjukhhl\_lkl\mxsb_REQUESTSwe_f_gluiZjZf_ljZmklZgZ\eb\Zxlky\agZq_gb_MPI_REQUEST_NULL.Gb`_ihdZaZgijbf_jnjZ]f_glZijh]jZffu\dhlhjhc\k_ijhp_kkuh[f_gb\Zxlky khh[s_gbyfb k [eb`Zcrbfb khk_^yfb \ khhl\_lkl\bb k lhiheh]b_cdhevpZijbihfhsbg_[ehdbjmxsbohi_jZpbcAZf_lbfqlhbkihevah\Zgb_^eywlbop_e_c[ehdbjmxsbohi_jZpbcfh]ehijb\_klbd\hagbdgh\_gbxlmibdh\hckblmZpbbprogram example9include 'mpif.h'integer ierr, rank, size, prev, next, reqs(4), buf(2)integer stats(MPI_STATUS_SIZE, 4)call MPI_INIT(ierr)call MPI_COMM_SIZE(MPI_COMM_WORLD, size, ierr)call MPI_COMM_RANK(MPI_COMM_WORLD, rank, ierr)prev = rank - 1next = rank + 1if (rank .eq.

0) prev = size - 1if (rank .eq. size - 1) next = 0call MPI_IRECV(buf(1), 1, MPI_INTEGER, prev, 5,&MPI_COMM_WORLD, reqs(1), ierr)call MPI_IRECV(buf(2), 1, MPI_INTEGER, next, 6,&MPI_COMM_WORLD, reqs(2), ierr)call MPI_ISEND(rank, 1, MPI_INTEGER, prev, 6,&MPI_COMM_WORLD, reqs(3), ierr)call MPI_ISEND(rank, 1, MPI_INTEGER, next, 5,&MPI_COMM_WORLD, reqs(4), ierr)call MPI_WAITALL(4, reqs, stats, ierr);print *, ‘process ’, rank,&‘ prev=’, buf(1), ‘ next=’, buf(2)call MPI_FINALIZE(ierr)endMPI_WAITANY(COUNT, REQUESTS, INDEX, STATUS, IERR)INTEGER COUNT, REQUESTS(*), INDEX, STATUS(MPI_STATUS_SIZE), IERRH`b^Zgb_ aZ\_jr_gby h^ghc ba COUNT Zkbgojhgguo hi_jZpbc Zkkhpbbjh\Zgguokb^_glbnbdZlhjZfb REQUESTS?kebdfhf_glm\uah\ZaZ\_jrbebkv24g_kdhevdh ba h`b^Z_fuo hi_jZpbc lh kemqZcguf h[jZahf [m^_l \u[jZgZh^gZbagboIZjZf_lj INDEX kh^_j`blghf_jwe_f_glZ\fZkkb\_ REQUESTS,kh^_j`Zs_]h b^_glbnbdZlhj aZ\_jr_gghc hi_jZpbb >ey g_[ehdbjmxs_]hijb_fZ hij_^_ey_lky iZjZf_lj STATUS Ihke_ \uiheg_gby ijhp_^mju khhl\_lkl\mxsbc we_f_gl iZjZf_ljZ REQUESTS mklZgZ\eb\Z_lky \ agZq_gb_MPI_REQUEST_NULL.MPI_WAITSOME(INCOUNT, REQUESTS, OUTCOUNT, INDEXES, STATUSES,IERR)INTEGER INCOUNT, REQUESTS(*), OUTCOUNT, INDEXES(*), IERR,STATUSES(MPI_STATUS_SIZE,*)H`b^Zgb_aZ\_jr_gbyohly[uh^ghcbaINCOUNTZkbgojhgguohi_jZpbcZkkhpbbjh\Zgguo k b^_glbnbdZlhjZfb REQUESTS IZjZf_lj OUTCOUNT kh^_j`bl qbkeh aZ\_jr_gguo hi_jZpbc Z i_j\u_ OUTCOUNT we_f_glh\ fZkkb\ZINDEXES kh^_j`Zl ghf_jZ we_f_glh\ fZkkb\Z REQUESTS k bo b^_glbnbdZlhjZfb I_j\u_ OUTCOUNT we_f_glh\ fZkkb\Z STATUSES kh^_j`Zl iZjZf_ljuaZ\_jr_gguo hi_jZpbc ^ey g_[ehdbjmxsbo ijb_fh\ Ihke_ \uiheg_gbyijhp_^mju khhl\_lkl\mxsb_ we_f_glu iZjZf_ljZ REQUESTS mklZgZ\eb\Zxlky\agZq_gb_MPI_REQUEST_NULL.< ke_^mxs_f ijbf_j_ ^_fhgkljbjm_lky ko_fZ bkihevah\Zgby ijhp_^mjuMPI_WAITSOME^eyhj]ZgbaZpbbdhffmgbdZpbhgghcko_fu³master-slave´\k_ijhp_kku h[sZxlky k h^gbf \u^_e_gguf ijhp_kkhf <k_ ijhp_kku djhf_ijhp_kkZ 0gZdZ`^hcbl_jZpbbpbdeZhij_^_eyxlkihfhsvx\uah\Zijhp_^mju slavek\hxehdZevgmxqZklvfZkkb\Z aihke_q_]hihkueZxl__]eZ\ghfmijhp_kkmIjhp_kk 0kgZqZeZbgbpbZebabjm_lg_[ehdbjmxsb_ijb_fuhl\k_ohklZevguoijhp_kkh\ihke_q_]h^h`b^Z_lkyijboh^Zohly[uh^gh]hkhh[s_gby>eyijbr_^rbokhh[s_gbcijhp_kk0\uau\Z_lijhp_^mjmh[jZ[hldb masterihke_q_]hkgh\Z\uklZ\ey_lg_[ehdbjmxsb_ijb_fuLZdbfh[jZahf ijhp_kk 0 h[jZ[Zlu\Z_l l_ ihjpbb ^Zgguo dhlhju_ ]hlh\u gZ^Zgguc fhf_gl Ijb wlhf ^ey dhjj_dlghklb jZ[hlu ijh]jZffu gm`ghh[_ki_qblvqlh[uijhp_kk 0mki_\Zeh[jZ[hlZlvijboh^ysb_khh[s_gbylh_klv qlh[u ijhp_^mjZ slave jZ[hlZeZ agZqbl_evgh ^hevr_ ijhp_^mjumaster\ijhlb\ghfkemqZ_bjZkiZjZee_eb\Zgb_g_bf__lhkh[h]hkfukeZDjhf_lh]h\ijbf_j_gZibkZg[_kdhg_qgucpbdeihwlhfm^eydhgdj_lghcijh]jZffugm`ghij_^mkfhlj_lvmkeh\b_aZ\_jr_gby25program example10include 'mpif.h'integer rank, size, ierr, N, MAXPROCparameter(N = 1000, MAXPROC = 128)integer req(MAXPROC), num, indexes(MAXPROC)integer statuses(MPI_STATUS_SIZE, MAXPROC)double precision a(N, MAXPROC)call MPI_INIT(ierr)call MPI_COMM_SIZE(MPI_COMM_WORLD, size, ierr)call MPI_COMM_RANK(MPI_COMM_WORLD, rank, ierr)if(rank .ne.

Свежие статьи
Популярно сейчас
Как Вы думаете, сколько людей до Вас делали точно такое же задание? 99% студентов выполняют точно такие же задания, как и их предшественники год назад. Найдите нужный учебный материал на СтудИзбе!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
5209
Авторов
на СтудИзбе
430
Средний доход
с одного платного файла
Обучение Подробнее