Interfeys funktsiyalari
MPI jarayonlari orasidagi aloqaning bazaviy mexanizmi xabarni uzatish va qabul qilish xisoblanadi. Xabarda qabul qilayotgan tomon uchun uzatilayotgan ma’lumotlar va axborotni tanlov asosida qabul qilishni amalga oshirishni o’zida mujassamlashtiradi:
uzatuvchi — xabar uzatuvchining rangi (guruxdagi raqami);
qabul qiluvchi — qabul qiluvchining rangi(guruxdagi raqami);
belgi — turli ko’rinishdagi xabarlarni taqsimlash uchun qo’llanilishi mumkin;
kommunikator — jarayon guruxlarining kodi.
Uzatish va qabul qilish operatsiyalari bloklanuvchi va bloklanmaydigan bo’lishi mumkin. Bloklanmaydigan operatsiyalar uchun tayyorligini tekshirish va operatsiyalarning bajarilishini kutish funktsiyalari aniqlanadi.
Bog’lanishning yana bir usuli xotiraga masofadan turib murojaat qilish (RMA) xisoblanadi. Lokal jarayon ma’lum masofadagi jarayonni xotira maydonini o’zining xotirasiga ko’chirib o’tkazishi yoki aksincha qaytarishi, shuningdek, masofadagi jarayonga o’zida mavjud bo’lgan uzatiladigan xotira ma’lumotlarini (masalan, summa qilish orqali) kombinatsiya qilish mumkin. Masofadan xotiraga murojaatlarning barcha operatsiyalari bloklanmaydi. Lekin ularning bajarilguniga qadar yoki undan keyin sinxronlashning bloklanish funktsiyasini chaqirish kerak.
MPIni S++ uchun realizatsiyasi paydo bo’ldi. Lekin bunda MPI ishlab chiquvchilari S++ da qilingan ishlar uchun javob bermaydi.
SHunday qilib, agar qisqa qilib aytganda, MPI – bu parallel jarayonlarni xabar uzatish mexanizmi yordamida o’zaro xarakatini ta’minlovchi funktsiyalar kutubxonasi bo’lib, yetarlicha katta xajmli va murakkab kutubxona xisoblanadi. Taxminan 130 funktsiyadan tashkil topadi. Ularning tarkibiga quyidagilar kiradi:
- MPI jarayonlarining initsializatsiyasi va yopilish funktsiyalari;
- nuqta nuqta ko’rinishidagi realizatsiya qilinadigan kommunikatsion operatsiyalar funktsiyasi;
- realizatsiya qilinadigan jamoaviy operatsiyalar;
- jarayonlar va kommunikatorlar guruxlari bilan ishlash funktsiyalari;
- ma’lumotlar strukturalari bilan ishlash funktsiyalari;
- jarayonlar topologiyasini shakllantirish funktsiyalari.
Yuqoridagi funktsiyalar to’plami samarali parallel dasturlar ishlab chiqish uchun xizmat qiladi. Istalgan parallel dastur atigi 6 ta MPI funktsiyalaridan foydalanib yozilishi mumkin.
MPI funktsiyalarining xar biri amalga oshirilish usuliga ko’ra xarakterlanadi:
1. Lokal funktsiya – chaqirilayotgan jarayon ichida amalga oshiriladi. Uning tugashi kommunikatsiyani talab etmaydi.
2. Lokal bo’lmagan funktsiya – uning tugashi uchun MPI protseduralari boshqa jarayon bilan amalga oshirish talab qilinadi.
3. Global funktsiya – bunda protsedurani barcha jarayonlar bajarishi kerak. Ushbu shartning buzilishi topshiriqni osilib qolishiga olib keladi.
4. Bloklanuvchi funktsiya – qaytarish boshqaruvi protseduralardan chaqiruvda qatnashayotgan parametrlarni takroriy ishlatish imkoniyatiga kafolat beradi. Jarayon xolatida blokirovka qilishga sabab bo’ladigan so’rov, xech qanday o’zgarishlar protseduradan chiqqungacha sodir bo’lishi mumkin emas.
5. 2.2 MPI-2 kommunikatsiya operatsiyalar– protseduradan qaytish darxol, operatsiya oxiriga yetishini kutmasdan va so’rovda qatnashuvchi parametrlarni takroriy ishlatishga ruxsat berilgandan so’nggina amalga oshiriladi. Bloklanmaydigan operatsiyalar tugatilishi maxsus funktsiyalar orqali bajariladi.
MPI kutubxonasining С va FORTRAN tillarida qo’llanilishida bir qancha farqli tomonlari mavjud.
С tilida barcha protseduralar funktsiya bo’lib xisoblanadi va ularning ko’pchiligi kod xatoliklarini qaytaradi. Dastur nomlari va nomlangan konstantalarni qo’llashda registr simvollarini yaxshi nazoratga olish kerak. Massivlar 0 dan boshlab indekslanadi. Mantiqiy o’zgaruvchilar int (true mos ravishda 1, false - 0) tipi ko’rinishida qabul qilinadi.
1.1-jadval.MPI-tiplari bilan S tili tiplarining farqlanishi
Do'stlaringiz bilan baham: |