Mavzu; Openmp paketi yordamida parallel dasturlash



Download 37,92 Kb.
Sana28.04.2022
Hajmi37,92 Kb.
#586433
Bog'liq
openmp


Mavzu; OpenMP paketi yordamida parallel dasturlash.
Reja;

1 Parallel dasturlash
2 Parallel dasturlarni yozish
3 Parallel arxitektura
Parallel dasturlash ketma-ketlikda qo'llaniladi
dastur bajarilish vaqtini yoki ketma-ketligini qisqartirishi kerak dastur, ma'lumotlarning katta hajmini hisobga olgan holda, bittasining xotirasiga kirishni to'xtatadi kompyuter.
Yuqori samarali hisoblash sohasida rivojlanish yo'nalishi adolatli
ushbu ikkita muammoni hal qilishga qaratilgan: bilan kuchli hisoblash tizimlarini yaratish bir tomondan katta miqdordagi RAM va tegishli dasturiy ta'minotni ishlab chiqish boshqasi bilan. Asosan, hamma savol narxlar / ishlash nisbati minimallashtirish bilan bog'liq. Axir, har doim samarali bo'lgan hisoblash tizimini qurish (yig'ish) mumkin muammoni hal qiling, ammo bunday echimning narxi etarli bo'ladimi. Mumkin kompyuter texnologiyalari rivojlanishining ikkita yo'nalishini ajratib ko'rsatish: vektorli mashinalar (Cray) va klasterlar (oddiy kompyuterlar, standart dasturiy ta'minot). Parallel dasturlarni yozish Parallel dasturlarni ishlab chiqish (PP) uchta asosiy bosqichdan iborat: Vazifani pastki topshiriqlarga ajratish. Ideal holda, ushbu kichik topshiriqlar mustaqil ravishda ishlaydi bir-biridan (ma'lumotlar mahalliyligi printsipi). Subtasklar o'rtasida ma'lumotlar almashinuvi qimmat operatsiya, ayniqsa, bu tarmoq almashinuvi bo'lsa.
Vazifalarni protsessorlar o'rtasida taqsimlash (virtual protsessorlar). Ba'zi hollarda ushbu masala PP ish vaqtining ixtiyoriga topshirilishi mumkin. Qandaydir parallel kutubxonadan foydalanib dastur yozish. Tanlash kutubxonalar dastur ishlaydigan platformaga bog'liq bo'lishi mumkin
talab qilinadigan ishlash darajasi va vazifaning o'zi. Parallel arxitektura Ko'pincha, barcha hisoblash tizimlari va kompyuterlar uch guruhga bo'linadi: Tarqatilgan xotira tizimlari. Har bir protsessor o'z xotirasiga ega va qila olmaydi to'g'ridan-to'g'ri boshqa protsessorning xotirasiga kirish. Bunday tizimlar uchun dasturlarni ishlab chiqishda dasturchi barchasini aniq belgilashi kerak aloqa tizimi (Xabarlarni uzatish). Kutubxonalar: MPI, PVM, Shmem (faqat Cray).
Umumiy (umumiy) xotiraga ega tizimlar. Protsessor to'g'ridan-to'g'ri kirishi mumkin boshqa protsessorning xotirasi. Protsessorlar bitta avtobusda (SMP) o'tirishi mumkin. Umumiy xotira jismonan ajratilishi mumkin, ammo keyinchalik masofadan boshqarish pultiga kirish narxi
xotira juda yuqori bo'lishi mumkin va buni dasturiy ta'minot dizaynerlari hisobga olishlari kerak.
Dasturiy ta'minotni ishlab chiqish yondashuvlari: Mavzular, kompilyator ko'rsatmalari (OpenMP), uzatish mexanizmi
xabarlar.
OpenMP

OpenMP-ga kirish
OpenMP - umumiy xotira tizimlari uchun parallel dasturlarni yozish mexanizmi. Tuzuvchi direktivalari va kutubxona funktsiyalari to'plamidan iborat. C / C ++, Fortran-da osongina ko'p tarmoqli dasturlarni yaratishga imkon beradi. Uskuna ishlab chiqaruvchilari (Intel, HP, SGI, Sun, IBM), ishlab chiquvchilar tomonidan qo'llab-quvvatlanadi kompilyatorlar (Intel, Microsoft, KAI, PGI, PSR, APR, Absoft)
OpenMP dasturlash modeli
Asosiy ip kerak bo'lganda bolalar iplarini tug'diradi.
Fork-join modeli.
Dastlabki kodning muhim nuqtalariga kompilyator ko'rsatmalarini kiritish orqali dasturlash


dasturlar. Tuzuvchi ushbu direktivalarni sharhlaydi va tegishli joylarga kiritadi dastur kutubxonasi kod bo'limlarini parallellashtirishga chaqiradi.

Direktiv uchun #Pragma omp parallel bu ko'chadan bo'linish kerakligini bildiradi iplar orasidagi takrorlash orqali.


Mavzular soni dasturdan yoki ish vaqti davomida boshqarilishi mumkin dasturlar - muhit o'zgaruvchisi OMP_NUM_THREADS. Shuni ta'kidlash kerakki, ishlab chiquvchi ipni sinxronlashtirish va qaramlik uchun javobgardir ma'lumotlar o'rtasida.
Dasturni OpenMP ko'magi bilan kompilyatsiya qilish uchun kompilyator kerak qo'shimcha kalitni ko'rsating:

OpenMP


OpenMP-ga kirish
OpenMP - umumiy xotira tizimlari uchun parallel dasturlarni yozish mexanizmi.
Tuzuvchi direktivalari va kutubxona funktsiyalari to'plamidan iborat.
C / C ++, Fortran-da osongina ko'p tarmoqli dasturlarni yaratishga imkon beradi.
Uskuna ishlab chiqaruvchilari (Intel, HP, SGI, Sun, IBM), ishlab chiquvchilar tomonidan qo'llab-quvvatlanadi kompilyatorlar (Intel, Microsoft, KAI, PGI, PSR, APR, Absoft)
OpenMP dasturlash modeli
Asosiy ip kerak bo'lganda bolalar iplarini tug'diradi.
Fork-join modeli.
Dastlabki kodning muhim nuqtalariga kompilyator ko'rsatmalarini kiritish orqali dasturlash
dasturlar. Tuzuvchi ushbu direktivalarni sharhlaydi va tegishli joylarga kiritadi dastur kutubxonasi kod bo'limlarini parallellashtirishga chaqiradi.

Direktiv uchun #Pragma omp parallel bu ko'chadan bo'linish kerakligini bildiradi iplar orasidagi takrorlash orqali.


Mavzular soni dasturdan yoki ish vaqti davomida boshqarilishi mumkin dasturlar - muhit o'zgaruvchisi OMP_NUM_THREADS. Shuni ta'kidlash kerakki, ishlab chiquvchi ipni sinxronlashtirish va qaramlik uchun javobgardir ma'lumotlar o'rtasida.
Dasturni OpenMP ko'magi bilan kompilyatsiya qilish uchun kompilyator kerak qo'shimcha kalitni ko'rsating:


Oqimlar qanday o'zaro ta'sir qiladi? Umumiy xotira modelida ish zarrachalari birgalikda foydalaniladi o'zgaruvchilar. Dasturda bunday o'zgaruvchilarga beparvolik bilan munosabatda bo'lgan taqdirda, poyga holati yuzaga keladi. Bu oqimlarning kelib chiqishi bilan bog'liq parallel ravishda bajariladi va shunga muvofiq umumiy foydalanishga kirishning ketma-ketligi o'zgaruvchilar bir dasturdan boshqasiga o'tishi bilan farq qilishi mumkin. Raqobatdagi xatolarni boshqarish uchun iplarning ishi sinxronlashtirilishi kerak. Uchun sinxronizatsiya ibtidoiylari, masalan, muhim bo'limlar, to'siqlar, atom operatsiyalari va qulflar 1. Shuni ta'kidlash kerakki, sinxronizatsiya talab qilinishi mumkin qo'shimcha qo'shimcha xarajatlar dasturidan va o'ylash va tarqatish yaxshiroqdir sinxronlash punktlari soni minimallashtirilishi uchun ma'lumotlar.


OpenMP ko’p oqimli ilovalarni tez va yengil yaratishni Fortran va C/C++algoritmik tillarda amalga oshiradi. OpenMP ning birinchi versiyasi 1997 - yildaFortran tili uchun yaratilgan. C/C++ dasturlash tillari uchun esa 1998 - yildayaratilgan. 2008 - yilda esa OpenMP ning 3.0 versiyasi taqdim etildi.OpenMP da parallel va ketma – ketlik.Parallel muhitga kirilgandan so’ng yangi OMP_NUM_THREADS-1 oqimlaryaratiladi, har bir oqim o’zining unikal nomeriga ega bo’ladi, bunda dastlabkioqim 0 nomer bilan belgialanadi va u bosh oqim (master) bo’ladi. Qolgan oqimlarraqam sifatida butun sonlar 1 dan OMP_NUM_THREADS - 1gacha bo’ladi.Oqimlar soni belgilangan parallel muhitda bajariladi va ushbu muhitdan chiqibketishgacha o’zgarmay qoladi. Parallel muhitdan chiqib ketgandan so’ngsinxronizatsiya yordamida bosh oqimdan boshqa barcha oqimlar yo’q qilinadi.Quyidagi misolda parallel direktivasi ishlashi keltirilgan. Natijada bosh oqim“1 - ketma - ket muhit” matnini ekranga chop etadi, keyinchalik parallel direktivasiyangi oqimlarni hosil qiladi va ushbu oqimlarning har biri “parallel muhit” matniniekranda chop etadi, keyin yaratilgan oqimlar tugatiladi va bosh oqim “2 - ketma -ket muhit” matnini ekranga chop etadi.#include "stdafx.h"#include using namespace System;int main(array ^args){Console::WriteLine(“1 – ketma – ket muhit”);#pragma omp parallel{Console::WriteLine(“parallel muhit”);}Console::WriteLine(“2 – ketma – ket muhit”);}Ayrim hollarda tizimning o’zi parallel muhitda bajarilayotgan oqimlar soninitizim resurslarini optimizatsiya qilish uchun dinamik ravishda o’zgartirishimumkin. Oqimlar sonini dinamik ravishda o’zgartirish OMP_DYNAMICo’zgaruvchisiga true qiymatni berish orqali amalga oshiriladi. Masalan, Linuxoperatsion tizimining bash komanda obolochkasida ushbu qiymatni quyidagibuyruq orqali amalga oshirish mumkin:export OMP_DYNAMIC = true;
Inamov Ro’zimuhamamd 612-17-21Dinamik ravishda o’zgaradigan tizimlarda oqimlar soni odatda belgilanmaganbo’ladi va uning qiymati falsega teng bo’ladi.omp_in_parallel() funksiyasi 1 qiymatni qaytaradi, agar aktiv holatdagiparallel muhitdan chaqirilgan bo’lsa. Quyidagi misolda omp_in_parallel() funksiyasi qo’llanilgan. Mode funksiyasiqaysi muhitdan chaqirilishiga qarab, “parallel muhit” yoki “ketma - ket muhit”qatorlarini chop etishda qo’llaniladi.#include "stdafx.h"#include using namespace System;void mode(void){if(omp_in_parallel())Console::WriteLine("parallel muhit");elseConsole::WriteLine("ketma - ket muhit");}int main(array ^args){mode();#pragma omp parallel{#pragma omp master{mode();}}return 0; } C/C++ dasturlash tillarida yuqoridagi barcha shartlar single direktivasi bilanbirgalikda e’lon qilinadi.Dasturning belgilangan qismini qaysi oqim bajarishi tavsiflanmaydi. Agardanowait sharti e’lon qilinmasa, bitta oqim belgilangan fragmentni bajaradi, qolganoqimlar uning ishini tugashini kutib turadi. Single direktivasi umumiyo’zgaruvchilar bilan ishlaganda kerak.Master direktivasi kodning ma’lum bir qismini faqat bosh oqim bajarishi
Upload your study docs or become a
Course Hero member to access this document
Continue to access
Upload your study docs or become a
Course Hero member to access this document
Continue to access
End of preview. Want to read all 86 pages?
Upload your study docs or become a
Course Hero member to access this document
Continue to access
Term
Fall
Professor
Lisa Dobson
Tags







Report
Other Related Materials
Download 37,92 Kb.

Do'stlaringiz bilan baham:




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

kiriting | ro'yxatdan o'tish
    Bosh sahifa
юртда тантана
Боғда битган
Бугун юртда
Эшитганлар жилманглар
Эшитмадим деманглар
битган бодомлар
Yangiariq tumani
qitish marakazi
Raqamli texnologiyalar
ilishida muhokamadan
tasdiqqa tavsiya
tavsiya etilgan
iqtisodiyot kafedrasi
steiermarkischen landesregierung
asarlaringizni yuboring
o'zingizning asarlaringizni
Iltimos faqat
faqat o'zingizning
steierm rkischen
landesregierung fachabteilung
rkischen landesregierung
hamshira loyihasi
loyihasi mavsum
faolyatining oqibatlari
asosiy adabiyotlar
fakulteti ahborot
ahborot havfsizligi
havfsizligi kafedrasi
fanidan bo’yicha
fakulteti iqtisodiyot
boshqaruv fakulteti
chiqarishda boshqaruv
ishlab chiqarishda
iqtisodiyot fakultet
multiservis tarmoqlari
fanidan asosiy
Uzbek fanidan
mavzulari potok
asosidagi multiservis
'aliyyil a'ziym
billahil 'aliyyil
illaa billahil
quvvata illaa
falah' deganida
Kompyuter savodxonligi
bo’yicha mustaqil
'alal falah'
Hayya 'alal
'alas soloh
Hayya 'alas
mavsum boyicha


yuklab olish