Kommunikatorlar tushunchasi.
Parallel dastur jarayonlari guruhlarga birlashtirilgan.
MPIda kommunikator - bu
ma’lumotlarni uzatish operatsiyalarini bajarishda foydalaniladigan jarayonlar guruhi
va bir qator qoʻshimcha parametrlarni (kontekst) birlashtirgan maxsus yaratilgan
xizmat koʻrsatish obyekti.
Qoida tariqasida, bir xil kommunikatorga tegishli
jarayonlar uchun juftlashtirilgan ma’lumotlarni uzatish
operatsiyalari amalga
oshiriladi. Kollektiv operatsiyalar barcha kommunikator jarayonlariga bir vaqtning
oʻzida qoʻllaniladi. Natijada, MPIda ma’lumotlarni uzatish
operatsiyalari uchun
foydalaniladigan kommunikatorning koʻrsatilishi majburiydir. Hisoblash jarayonida
yangi jarayonlar guruhlari va kommunikatorlar yaratilishi va mavjud texnologik
guruhlar va kommunikatorlarni oʻchirish mumkin. Xuddi shu jarayon turli guruhlar
va kommunikatorlarga tegishli boʻlishi mumkin. Parallel dasturda mavjud boʻlgan
barcha jarayonlar sukut boʻyicha MPI_COMM_WORLD
identifikatori bilan
yaratilgan kommunikatorning bir qismidir.Agar turli guruhlardagi jarayonlar
oʻrtasida
ma’lumotlarni
uzatish
zarur
boʻlsa,
global
kommunikator
(interkommunikator) yaratish kerak.
OpenMP tuzilishi: • Direktivlar • Funksiyalar kutubxonasi •
Bir qator
o'zgaruvchilari. Ushbu tartibda OpenMP texnologiyasining imkoniyatlari ko'rib
chiqiladi. Ushbu standart C90, C99, C ++, Fortran 77, Fortran 90 va Fortran 95
algoritmlari uchun OpenMP foydalanishni ta'minlaydi. OpenMP direktivasining
formatini va barcha dasturlarning misollaridan C da taqdim etiladi; Fortran tili uchun
OpenMP texnologiyasidan foydalanish xususiyatlari 5.8.1-bandda keltirilgan. Eng
umumiy shaklida OpenMP direktivasining formati
quyidagicha ifodalanishi
mumkin:
#pragma
omp
[
[[,]
]
...]
Direktivning boshlang'ich qismi (#pragma omp) sobit bo'ladi, direktivaning turi
uning nomi (Direktiv_yeni) bilan belgilanadi, har bir direktiv o'zboshimchalik bilan
parametrlar soni bilan birga bo'lishi mumkin (ingliz tilida, OpenMP direktivasining
parametrlari atamalar jumlasidan foydalanadi).
Misol uchun, biz bir ko'rsatmaga misol keltiramiz:
#pragma omp parallel default (shared) \ Shaxsiy (beta, pi) Misol,
ko'rsatmalarni o'rnatish uchun dasturning bir nechta yo'nalishidan foydalanish
mumkinligini ko'rsatadi - davom etish mavjudligini belgisi "\" teskarisi. Birinchi
parallel dastur misoli Juda muhim nuqta ta'kidlab o'taylik - shuni anglash mumkinki,
OpenMP texnologiyasining imkoniyatlarini qisqacha ko'rib chiqish oddiy, ammo
parallel dasturlarni ishlab chiqish uchun etarli. Yangi dasturlash tillarini - "Salom
Dunyo"
degan salom yo'lini chiqadigan dasturni ishlab chiqishda dastlab amalda standart
dastur ishlab chiqaylik. Shunday qilib:
#include main () { / * Parallel parchani tanlash * / #pragma omp parallel
{printf ("Salom Dunyo! \ n"); } / * Parallel parchani * / }