|
Mavzu; Openmp paketi yordamida parallel dasturlash
|
Sana | 30.11.2023 | Hajmi | 204.69 Kb. | | #108623 |
Bog'liq Mavzu; Openmp paketi yordamida parallel dasturlash-fayllar.org 5nleNeNOLpXoVmmPICw-oQF7ud4E42 V (1), mustaqil ish, 3-Mustaqil ish (1), Mobil tarmoqlari. 3G (umts va wcdma), 4G (Wimax va lte) va 5G te-fayllar.org, 9-mustaqil ish Reja Transport tarmoqlari, 2-Mustaqil ish, Mavzular, ixtisoslashtirilgan-transport-vositalariga-texnik-xizmat-ko-rsatishni-vaqtida-amalga-ishirishning-ekspluatatsiya-sharoitidagi-salmog-i, 2-Amaliy ish (1), 1-Amaliy ish (1), MIT 1- Amaliy , 2- amaliy mashg’ulot. Mashinali o’qitishda instrumental vositala, 14-Ma’ruza Matlabda hisoblash ishlarini bajarish. Reja Matlab , Mustaqil ish (2)
Mavzu; Openmp paketi yordamida parallel dasturlash
O‘ZBEKISTON RESPUBLIKASI AXBOROT TEXNOLOGIYALARI VA KOMMUNIKATSIYALARINI RIVOJLANTIRISH VAZIRLIGI
MUHAMMAD AL-XORAZMIY NOMIDAGI TOSHKENT AXBOROT TEXNOLOGIYALARI UNIVERSITETI QARSHI FILIALI KOMPYUTER INJINIRINGI FAKULTETI III BOSQICH KI-11-18-GURUH TALABASI BAJARGAN
MUSTAQIL ISHI
Bajardi: Hayitov Z
Qabul qildi: Farruh Kadirov
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.
http://fayllar.org
|
| |