Amaliy mashg‘ulot №7. Virtual protsessor ish tartibini tashkillash
Download 15.62 Kb. Pdf ko'rish
|
7-amaliy mashg\'ulot
Amaliy mashg‘ulot №7. Virtual protsessor ish tartibini tashkillash. Intel Threading Building Blocks maqsadi IntelThreading Building Block (TBB) - bu umumiy xotira tizimlari uchun parallel dasturlarni ishlab chiqishga mo'ljallangan kutubxona. Boshqa taniqli yondashuvlar va vositalardan farqli o'laroq: OpenMP-dan foydalangan holda to'g'ridan-to'g'ri oqimlarda dasturlash, TBB o'zi C ++ da yozilgan (sinflar va shablonlarda) va undan foydalanib ob'ektlarda parallel dastur ishlab chiqishga imkon beradi. Bundan tashqari, kutubxona quyi darajadagi ishlarni yashiradi va shu bilan parallel dastur yaratish jarayonini soddalashtiradi. Intel Threading Building Blocks kutubxonasi imkoniyatlari TBB parallel dasturlarni ishlab chiqish uchun xos bo'lgan quyidagi vazifalarni hal qilishga imkon beradigan sinflar va funktsiyalar majmuini o'z ichiga oladi: • takrorlanishlar soni ma'lum bo'lgan davrlarni parallellashtirish; • qisqarish bilan ma'lum takrorlanishlar soni bilan sikllarni parallellashtirish; • shartlisikllarni parallellashtirish; • rekursiyani parallellashtirish. Shuningdek, kutubxonada quyidagilar mavjud: • xavfsiz konteynerlar (STL konteynerlariga o'xshash, faqat ular bilan parallel dasturlarda ishlashda qo'shimcha xarajatlar standart STL konteynerlardan foydalanishdan kam); • ajratuvchilar, uylarni ajratish operatorlari; • sinxronizatsiya primitivlari. TBB - bu o'zaro faoliyat platformalar kutubxonasi - bu uchun Microsoft Windows, Linux, Mac OS operatsion tizimlari uchun dasturlar mavjud.Bundan tashqari, kutubxona notijorat maqsadlarda foydalanish uchun bepul. Kutubxonani ishga tushirish va tugatish TBB ning parallel hisoblash imkoniyatlaridan foydalanish uchun sizda tbb :: task_scheduler_init sinfining kamida bitta faol (boshlangan) nusxasi bo'lishi kerak. Ushbu sinf rejalashtiruvchiga ishlash uchun zarur bo'lgan ichki tuzilmalarni yaratish uchun mo'ljallangan. Tbb :: task_scheduler_init sinfining ob'ekti ikkita holatning birida bo'lishi mumkin: faol yoki nofaol. Tbb :: task_scheduler_init sinfining nusxasini faollashtirishning ikki yo'li mavjud: • to'g'ridan-to'g'ri tbb :: task_scheduler_init ob'ektini yaratishda. Bunda yaratilgan oqimlar soni kutubxona tomonidan avtomatik ravishda aniqlanishi yoki foydalanuvchi tomonidan qo'lda o'rnatilishi mumkin; task_scheduler_init :: initialize usulini chaqirish orqali dangasa boshlash. Tbb :: task_scheduler_init sinfi uchun konstruktor prototipi quyida keltirilgan: task_scheduler_init (int number_of_threads = avtomatik); task_scheduler_init init; // Sinf ob'ektini initsializatsiya qilish tbb :: task_scheduler_init // sukut bo'yicha ob'ekt yaratishda #include "tbb / task_scheduler_init.h" // nomlar maydoni tbb yordamida kerakli sarlavha fayllarini qo'shing; int main () {task_scheduler_init init; // Hisob-kitoblar 0 natijasini beradi; } Bir o'lchovli takrorlash maydonidan foydalanish misoli: block_range oralig'i (5, 14); for (int i = range.begin (); i! = range.end (); i ++) {// Hisob-kitoblar} TBB kutubxonasi foydalanuvchisiga o'zining takrorlanish maydonini yaratish imkoniyati beriladi.Buning uchun sinfda quyidagi usullarni amalga oshirish kerak: • Range :: Range (const R &) - konstruktorni nusxalash. • Range :: ~ Range () - bu destruktor. • bool Range :: empty () - bo'shliq uchun takrorlanish maydonini tekshirish usuli. Agar u bo'sh bo'lsa, unda funktsiya haqiqiy qiymatga qaytishi kerak. • bool Range :: is_divisible () - takrorlash maydonini bo'linishini tekshirish usuli. Agar bo'linish mumkin bo'lsa, unda funktsiya haqiqiy qiymatga qaytishi kerak. • Range :: Range (R & r, split) - konstruktorni ajratish, takrorlanish maydonining nusxasini yaratadi va takrorlanish 11 oralig'i bilan belgilangan diapazoni ikki qismga ajratadi (takrorlanish maydonining diapazoni ham yangi yaratilgan ob'ekt, ham uni yaratgan ob'ekt uchun o'zgartiriladi). Savollar: 1. Parallelashtirish nima va u nima uchun kerak? 2. Intel Threading Building Blocks haqida ma’lumot bering. 3. O‘z ism va familiyangizni parallelashtirib uningdasturini tuzing To'lqinov Bobur Bobur To'lqinov Download 15.62 Kb. Do'stlaringiz bilan baham: |
Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling
ma'muriyatiga murojaat qiling