OpenMP asosan umumiy xotirani ko'p ishlov berish dasturlashi bilan mashhur.
CUDA texnologiyasi asosan Nvidia GPU larida GP GPU hisoblash va parallellashtirish vazifalari bilan mashhur.
CUDA o'z bajarilishining bir qismini grafik kartaga topshiradi, openMP esa barcha jarayonlarni protsessorda saqlaydi. Bu narsalarni parallellashtirishning ikki xil usuli.
OpenMP bir nechta ish bo`limlarini yaratish va kod bloklarining ushbu bo`limlarga nisbatan bajarilishini o'zgartirish imkoniyatini beradi (masalan, muhim bo'limlar, faqat bitta oqimda ishlaydigan bo'limlar va boshqalar).
CUDA ma'lumotlarni grafik kartaga yuboradi va keyin GPU ning ko'plab yadrolari ushbu ma'lumotlarda bir xil jarayonni amalga oshiradi (garchi GPU'lar protsessorlarga qaraganda ko'proq yadro va oqimlarga ega bo'lsa-da, ular odatda o'xshash yoki bir xil ko'rsatmalar bilan ta'minlanadi). Faqat oqimlar va protsessor raqamlari/indekslari farq qiladi (ikkalasi ham ko'p o'lchovli bo'lishi mumkin, masalan, 2x2 o'lchamdagi 4 ta oqim 2 qatorga 2 qatorga tashkil qilganingiz kabi). Bu matritsalarni ko'paytirish kabi katta ma'lumotlar to'plamlarida turli indekslar uchun bir xil ishni bajarish uchun foydalidir.
Xulosa:
Men bu amaliy ishni bajarish jararonida OpenMP texnalogiyasi va uning imkoniyatlari haqida batafsil ma’lumotga ega bo`ldim va OpenMP texnalogiyasidan foydalangan xolatda soddagina kvadrat tenglamani parallelashtirgan xolatda yechib ko`rdim . Yana shuni takidlash joyizki OpenMP va Cuda texnalogiyasi o`rtasidagi farqni va ishlatilish jarayonlari haqida ham ma’lumotlarga ega bo`ldim.
Do'stlaringiz bilan baham: |