Kompyuter industriyasi mavjud bo'lganda parallel kompyuterlar arxitekturasi juda tez sur'atda va turli yo'nalishlarda ishlab chiqildi


Download 217.21 Kb.
bet2/2
Sana11.01.2023
Hajmi217.21 Kb.
#1088110
1   2
Bog'liq
Parallel-kompyuterlar

Parallel direktivasi. Ushbu direktiva N guruhining bir guruhini yaratadi. N ish vaqti bilan belgilanadi, odatda protsessor yadrolari soni, lekin siz N qo'lda ham o'rnatishingiz mumkin. Guruhdagi barcha iplar buyruqni bajaradi (yoki {} -shells da belgilangan buyruqlar bloklari). Amalga oshirilgandan keyin, iplar biriga
"birlashtiriladi".
#pragma omp parallel {// Blok ichidagi kod parallel bajariladi printf("Hello!n"); }

Misol, "Hello!" Matnini ko'rsatib turadi. Guruhda hosil bo'lgan ish zarralari qatorida qatorli tanaffus bilan. Ikki yadroli tizimlar uchun matn ikki marta chop etiladi. (Eslatma: "HeHlellolo" kabi bir narsa ko'rsatilishi mumkin, chunki chiqish parallel ravishda sodir bo'ladi.)



Qanday ishlayotganini ko'rib chiqsangiz, GCC maxsus funktsiyani yaratadi va blok kodini bu funktsiyaga o'tkazadi, shuning uchun blok ichidagi barcha o'zgaruvchilar funktsiyaning lokal o'zgaruvchilari (har bir oqimning mahalliy o'zgaruvchilari) bo'ladi. Boshqa tomondan, ICC fork () ga o'xshash mexanizmdan foydalanadi va maxsus funksiya yaratmaydi. Har ikki dastur ham, albatta, to'g'ri va semantik jihatdan bir xildir.
Agarda if dan foydalanilsa, parallelizm shartli bo’lishi mumkin: extern int parallelism_enabled;
#pragma omp parallel for if(parallelism_enabled) for(int c=0; cushbu holatda parallelism_enabled 0 ga teng va sikl bir marta bajariladi
for direktivasi for siklini bir nechta oqimlarga ajiratadi:
#pragma omp for for(int n=0; n<10; ++n)
{ printf(" %d", n);
} printf(".n");
Ushbu tsikl 0 dan 9 gacha bo'lgan sonlarni aniq bir marta chiqaradi. Biroq, ularni olib chiqish tartibi noma'lum. Masalan, bunday bo'lishi mumkin: 0 5 6 7 1 8 2 3 4 9
Xulosa
OpenMP texnologiyasi umumiy xotirali kompyuterlar uchun parallel dasturlar tuzishda samarali texnologiyalardan biri xisoblanadi
OpenMP Fortran, C va C++ dasturlash tillari uchun ishlab chiqilgan
OpenMP ni C++ dasturlash tilida ishlatish uchun kompilyatorga OpenMP ni qo’shish kerak
OpenMP da barcha direktivalar #pragma omp kalit so’zidan keyin yoziladi
OpenMP da dastur kodi parallel va ketma-ket bo’limlardan turadi.
Download 217.21 Kb.

Do'stlaringiz bilan baham:
1   2




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling