Umumiy MPI protseduralari. MPI_Comm_size, MPI_Comm_rank, MPI_Get_processor_name funksiyalari
UMUMIY MPI PROTSEDURALARI . MPI_COMM_SI ZE, MPI _COMM_RAN K, MPI_GET_PROCESSOR_N A ME FUN KSI YALARI .
Terminologiya • MPI - bu xabarlarni uzatish nuqtai nazaridan parallel jarayonlarning ishlashini qo'llab-quvvatlash uchun mo'ljallangan funktsiyalar kutubxonasi. • Jarayon raqami manfiy bo'lmagan butun son bo'lib, har bir jarayonning o'ziga xos atributidir. • Jarayonlar guruhlarga birlashtiriladi, guruh ichida barcha jarayonlar qayta nomlanadi. Har bir guruhning u bilan bog'langan o'z kommunikatori mavjud. • Jarayon ikkita asosiy atributga ega: kommunikator va kommunikatordagi raqam .
KOMUNIKATOR VA RANK • Kommunikator (communicator ) - jamoaviy operatsiyalarni (axborot almashinuvi va boshqalar) amalga oshirish uchun mantiqiy maydonni tashkil etuvchi jarayonlar to'plami.Guruhlarning tarkibi ixtiyoriydir. Guruhlar mos kelishi, bir-biriga kirishi, kesishmasligi yoki qisman kesishishi mumkin. Jarayonlar faqat ma'lum bir kommunikator ichida o'zaro ta'sir qilishi mumkin, turli kommunikatorlardagi xabarlar kesishmaydi. Har bir jarayon maxsus identifikatorga ega - daraja (rank) . Bitta kommunikator ichidagi har bir jarayon o'ziga xos darajaga ega.
• Kommunikator aloqa muhitidir. • Kommunikatorlar oldindan belgilangan - MPI_Comm turiga ega. • Dastur ishga tushganda, barcha jarayonlar MPI_COMM_WORLD kommunikatorida ishlaydi. • U har doim mavjud va MPI dasturining barcha ishlaydigan jarayonlarining o'zaro ta'siri uchun xizmat qiladi. • Dastur boshlanishida faqat bitta joriy jarayonni o'z ichiga olgan MPI_COMM_SELF kommunikatori va hech qanday jarayonlarni o'z ichiga olmaydigan MPI_COMM_NULL kommunikator mavjud. • Yo'naltirishda siz ushbu yo'naltirish amalga oshiriladigan guruh identifikatorini ko'rsatishingiz kerak. Barcha jarayonlar oldindan belgilangan MPI_COMM_WORLD identifikatoriga ega bo'lgan guruhda joylashgan.
Umumiy MPI protseduralari • Har bir parallel dast urda umumiy prot seduralar zarur. • int MPI_Init ( int * argc, char*** argv ). • MPI_Init - parallel qismni ishga tushirish (har bir dastur uchun haqiqiy ishga tushirish bir martadan ko'p bo'lmaydi, agar takrorlansa, amallar bajarilmaydi va pastki dastur qaytadi). • Barcha MPI protseduralarini faqat MPI_Init ga murojat qilgandan keyin chaqirish mumkin. • Jarayon agar muvaffaqiyatli bo'lsa, – MPI_SUCCESS, aks holda – xato kodini qaytaradi. • int MPI_Finalize(v oid) • MPI_Finalize - ilovaning parallel qismini tugatilishi. • Jarayon MPI_Finalize ni chaqirganda, uning xabar almashishda ishtirok etishini talab qiladigan barcha amallar bajarilgan bo'lishi kerak. • MPI_Init kompleks argument turi barcha jarayonlarga asosiy argumentlarni uzatish uchun taqdim etilgan: