|
Guruh: 211-20 F. I. O: Navruzbek Abduganiyev
|
bet | 2/2 | Sana | 18.11.2023 | Hajmi | 192,23 Kb. | | #100805 |
MPI qisqartmasi Message Passing Interface degan ma'noni anglatadi. Bu xabarlarni uzatish (yuborish, qabul qilish, efirga uzatish va h.k.) va ilovalardan qanday xatti-harakatlar kutilishi kerakligi haqidagi API deklaratsiyalari to'plami.
"Xabarni uzatish" g'oyasi ancha mavhum. Bu mahalliy jarayonlar yoki tarmoqqa ulangan xostlar bo'ylab taqsimlangan jarayonlar va hokazolar o'rtasida xabar uzatishni anglatishi mumkin. Zamonaviy ilovalar ko'p qirrali bo'lishga va bir nechta asosiy mexanizmlarni (umumiy xotiraga kirish, tarmoq IO va boshqalar) mavhumlashtirishga juda ko'p harakat qiladi.
OpenMP - bu umumiy xotirali ko'p ishlov berish dasturlarini yozishni (ehtimol) osonlashtiradigan API. Xabarlarni o'tkazish tushunchasi yo'q. Buning o'rniga, standart funktsiyalar to'plami va kompilyator direktivalari bilan siz parallel ravishda mahalliy ish zarralarini bajaradigan dasturlarni yozasiz va siz ushbu oqimlarning harakatini nazorat qilasiz (ular qanday manbaga kirishlari kerak, ular qanday sinxronlashtiriladi va hokazo). OpenMP kompilyatorning yordamini talab qiladi, shuning uchun siz uni qo'llab-quvvatlanadigan tillarning kengaytmasi sifatida ham ko'rishingiz mumkin.
Ilova MPI va OpenMP dan ham foydalanishi odatiy hol emas.
Amaliy qism:
Keling, NumPy va Cuda kutubxonalarini, shuningdek, ishlov berish birliklarini taqqoslash uchun foydalanmoqchi bo'lgan vaqt kutubxonasini import qilaylik.
Keyinchalik, taqqoslash uchun ishlatiladigan funktsiyani aniqlaymiz.
Keyin ikkita matritsani yaratishingiz kerak: biri CPU uchun, ikkinchisi GPU uchun. Biz matritsalarimiz uchun 9999 dan 9999 gacha bo'lgan shaklni tanlaymiz.
Nihoyat, biz CPU va GPU protsessorining ishlash farqini aniqlash uchun oddiy qo'shish funksiyasini ishga tushirmoqchimiz.
Va natijani konsolga chop eting.
GPU tezlatkichi bilan ishga tushirganimizdan so‘ng , biz butun sonlarni qo‘shish GPUda bir necha barobar tezroq ishlashini tasdiqladik. Masalan, 10000x10000 matritsadan foydalanilganda GPU butun sonlarni qoʻshishni ~1294 marta tezroq ishlaydi.
Darhaqiqat, matritsa qanchalik katta bo'lsa, unumdorlikni oshirishni kutishingiz mumkin.
Hulosa:
Hulosa qilib aytadigan bo’lsak parallel ishlash texnalogiyalari vaqtdan yutishni ta’minlaydi,shuningdek ushbu texnalogiyalarning barchasi hamma kompyuterlarda qo’llanila olmaydi.Parallel ishlash texnalogiyalaridan hozirgi kunda juda ko’p foydalaniladi va o’zim ham CUDA parallel ishlash texnalogiyasidan ko’p foydalanib turaman.So’zimning yakunida shuni aytib o’tmoqchimanki barcha parallel ishlash texnalogiyalari ishlash samaradorligi sezilarli darajada yuqoridir
|
| |