Amaliy mashg‘ulot №7. Virtual protsessor ish tartibini tashkillash


Download 15.62 Kb.
Pdf ko'rish
Sana09.11.2023
Hajmi15.62 Kb.
#1759258
Bog'liq
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