Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Duisembiev-Parallel-esep.doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
5.86 Mб
Скачать

Int mpi_Barrier (mpi_Comm comm)

comm —коммуникатор идентификаторы.

Бұл функция өзін шақырған процестер жұмысын, қашан СОММ коммуникаторының барлық қалған процестері осы процедураны орындап болмайынша бұғаттайды. Коммуникатордың соңғы процесі берілген функцияны орындап біткеннен кейін ғана барлық процестер бұғаттан босатылып одан ары орындауды жалғастырады. Бұл процедура ұжымдық. Барлық процесс МРI_BARRIER функциясын шақырулары керек, алайда коммуникатордың әртүрлі процестерінің нақты орындалған шақырулары бағдарламаның әр жерінде орналасуы мүмкін.

Процестер топтарымен жұмыс (операциялар).

Топ – бұл процестердің реттелген жиыны. Топтағы әрбір процеске бүтін сан – ранг немесе нөмір қойылған. MPI_GROUP_EMPTY – бірде-бір процесс кірмейтін бос топ. MPI_GROUP_NULL – қате топ үшін пайдаланылатын мән.

Жаңа топтарды бұрыннан бар топтар негізінде де, коммуникаторлар негізінде де құруға болады, бірақ алмасу операцияларында тек коммуникаторлар ғана пайдаланылуы мүмкін. Барлық басқа процестер топтары құрылатын базалық топ, MPI_COMM_WORLD коммуникаторымен байланысты, оған қосымшаның барлық процестері енеді.

MPI технологиясында коммуникаторлармен және процестер топтарымен жұмыс істеуге бағытталған көптеген функциялар қарастырылған. Бұл ұсынылатын функциялар, топтар құрамын салыстыруға, олардың қиылысуын, бірігуін анықтауға, процесті топқа қосуға, топты жоюға және т.б. әрекеттерге мүмкіндік береді. Топтармен операциялар орындау кезінде бос топ пайда болуы да мүмкін. Топтармен операциялар мысалдарын [2] және [10] әдебиеттерінен табуға болады (Сәйкесінше, Фортран және Си тілдерінде).

Сұрақтар мен тапсырмалар.

  1. Әрбір жіберілетін хабарламаның атрибуттары қандай?

  2. Хабарламаны жіберу/қабылдау кезінде бұғаттау неге кепілдік береді?

  3. Бағдарламада әртүрлі хабарламаларды жіберу кезінде тег ретінде әрқашан тек бір санды ғана пайдалануға бола ма?

  4. Кезкелген процестен кезкелген хабарлама қалай қабылданады?

  5. Алынған хабарламаның ұзындығын қабылдаушы процесс қалай анықтай алады?

  6. Хабарламаларды жіберу кезінде MPI_ANY_SOURCE және MPI_ANY_TAG тұрақтыларын қолдануға бола ма?

  7. Хабарламаны қабылдамай тұрып оның атрибуттарын анықтауға бола ма?

  8. mpi_send, mpi_bsend, mpi_ssend, mpi_rsend әртүрлі бұғатталуымен деректерді жіберу түрлерінің іске асырылу тиімділігін салыстырыңыз.

  9. Түрлі жіберулер түрлері үшін операцияның аяқталуы нені білдіреді?

  10. Жіберілген хабарламаның максимал мүмкін ұзындығы қалай анықталады?

  11. Процессорларға таратылған векторлардың скаляр көбейтіндісін орындау.

  12. mpi_waitall, mpi_waitany және mpi_waitsome процедураларын пайдаланудағы айырмашылық?

  13. Бұғатталуымен хабарламаны жіберу әне қабылдау MPI-да нені білдіреді?

  14. Ұжымдық операцияларда қосымшаның барлық процестері қатысады, деген дұрыс па ?

  15. Әртүрлі коммуникаторларға тиісті процестер қатынасы мүмкін бе?

  16. Ұжымдық операциялар және «нүкте-нүкте» типіндегі арақатынас айырмашылығы?

  17. Бағдарламаның ешқандай екі процесі бірдей нөмірлі болуы мүмкін емес, тұжырымы дұрыс па?

  18. MPI және DVM, MPI және OpenMP бағдарламалау технологияларын салыстырыңыз.

  19. Неге MPI технологиясына критикалық секция механизмі жоқ?

  20. Жіберуші процесс нөмірін дәл білмей тұрып, MPI-да хабарламаны қабылдауға бола ма?

  21. MPI технологиясында хабарламаны қабылдауға қажетті буфер өлшемі қалай анықталады?

  22. MPI_BCAST процедурасы жіберген хабарламаны MPI_RECV процедурасы көмегімен қабылдауға бола ма?

  23. Барьерлік синхрондау туралы не айтасыз?

  24. MPI_Barrier функциясы туралы не айтасыз?

  25. Процестердің ұжымдық ара-қатынастары туралы не айтасыз?

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]