|
oneAPIThreading Building Blocks
|
bet | 15/28 | Sana | 31.05.2024 | Hajmi | 6,58 Mb. | | #258326 |
Bog'liq BMI RakhimovAlijonFinal2024 (3)oneAPIThreading Building Blocks (oneTBB; ilgari Threading Building Blocks yoki TBB) ko‘p yadroli protsessorlarda parallel dasturlash uchun Intel tomonidan ishlab chiqilgan C++ shablon kutubxonasidir. TBB yordamida hisoblash parallel ravishda bajarilishi mumkin bo‘lgan vazifalarga bo‘linadi.
Maqsadli platformalar: CUDA va OpenCL kabi kutubxonalar GPUlar uchun moʻljallangan, TBB, OpenMP va Pthreads esa protsessorlarga moʻljallangan. OpenCL va MPI heterojen va taqsimlangan muhitlarni qo‘llab-quvvatlaydi. Dasturlash modellari: TBB va Cilk Plus vazifalarga asoslangan parallelizmdan foydalanadi, OpenMP direktivga asoslangan parallelizmdan foydalanadi, CUDA va OpenCL ma’lumotlarga parallel hisoblashga qaratilgan aniq parallelizmni taklif qiladi va MPI xabarlarni uzatishga tayanadi. Foydalanish qulayligi: OpenMP va TBB parallel dasturlashni soddalashtiradigan yuqori darajadagi abstraktsiyalarni ta’minlaydi, CUDA, OpenCL va Pthreads esa parallel konstruktsiyalarni batafsilroq boshqarishni talab qiladi. Xususiyatlari va imkoniyatlari: Turli kutubxonalar TBB-ning bir vaqtda konteynerlari, OpenMP-ning ichki parallelligi, CUDA-ning GPU-ga xos optimallashtirishlari, OpenCL-ning platformalararo qo‘llab-quvvatlashi, MPI-ning kengayishi va Pthreads-ning nozik nazorati kabi noyob xususiyatlarni taklif qiladi. To‘g‘ri parallel ishlov berish kutubxonasini tanlash dasturning o‘ziga xos talablariga, maqsadli uskunaga va afzal qilingan dasturlash modeliga bog‘liq. Vaqt taqsimoti bo‘yicha: operatsion tizim tomonidan barcha jarayonlarni amalga oshirishni vaqt taqsimoti asosida bo‘lib amalga oshiradi. Jarayonlar kutish vaqtlari foydalanuvchiga sezilmaydi va bu parallel holda amalga oshirgandek namoyon bo‘ladi. Buni amalga oshirish mantiqiy protsessorlarni yaratish orqali amalga oshmoqda (Hyper-Threading Technology). Fizik protsessorlarni oshirish: bu yo‘l orqali dasturlardagi jarayonlar oqimlar yaratish asosida amalga oshiriladi.
2.3. TBB kutubxonasi va uning imkoniyatlari
TBB (Intel® Threading Building Blocks) kutubxonasi parallel dasturlash uchun keng qo‘llaniladigan C++ kutubxonasi. U yuqori darajali, vazifaga asoslangan parallelizmni ta’minlaydi, bu iplarni o‘tkazishning ko‘plab murakkabliklarini mavhumlashtiradi va kengaytiriladigan va samarali parallel kodni yozishni osonlashtiradi. TBB kutubxonasi tomonidan taqdim etilgan ba’zi asosiy xususiyatlar va imkoniyatlar: Vazifaga asoslangan parallellik: TBB vazifalar orqali yuqori darajadagi abstraktsiyada parallellikni ifodalash imkonini beradi. Vazifalar bir vaqtning o‘zida bajarilishi mumkin bo‘lgan ish birliklari bo‘lib, TBB ularni rejalashtirish va bajarishni boshqaradi. Parallel algoritmlar: TBB to‘plamlarni saralash, qidirish va takrorlash kabi umumiy operatsiyalarni parallellashtiradigan boy parallel algoritmlar to‘plamini taqdim etadi. Ushbu algoritmlar tizimdagi mavjud parallelizmdan avtomatik ravishda foydalanish uchun mo‘ljallangan. Bir vaqtning o‘zida nazorat qilish: TBB mutekslar, blokirovkalar va atom operatsiyalari kabi umumiy resurslarga bir vaqtda kirishni boshqarish uchun turli mexanizmlarni taklif qiladi. Ushbu vositalar to‘g‘ridan-to‘g‘ri past darajadagi sinxronizatsiya ibtidoiylari bilan ishlamasdan ish zarralari uchun xavfsiz kod yozishga yordam beradi. Ma’lumotlar parallelligi: TBB katta ma’lumotlar to‘plamidagi operatsiyalarni osongina parallellashtirishga imkon beruvchi parallel halqalar va parallel qisqartirishlar kabi konstruktsiyalarni o‘z ichiga oladi. Ushbu konstruktsiyalar ishni bir nechta iplar bo‘ylab samarali taqsimlaydi. Masshtablilik: TBB ko‘p yadroli protsessorlar va ko‘p yadroli protsessorlarni o‘z ichiga olgan turli apparat arxitekturalari bo‘ylab kengaytirilishi uchun mo‘ljallangan. Mavjud resurslarga asoslanib, u avtomatik ravishda parallellik darajasini moslashtiradi, bu uni apparat konfiguratsiyasining keng doirasiga moslashtiradi. Vazifa grafiklari: TBB vazifalar o‘rtasidagi bog‘liqliklar aniq belgilangan vazifalar grafiklarini yaratishni qo‘llab-quvvatlaydi. Bu vazifalarni bajarish tartibini yanada aniq nazorat qilish imkonini beradi va muayyan stsenariylarda yaxshi ishlashga olib kelishi mumkin. o‘zaro muvofiqlik: TBB OpenMP va MPI kabi boshqa parallel dasturlash modellari va kutubxonalari bilan uzluksiz integratsiya qilinishi mumkin, bu sizga yanada ko‘proq parallellik va ishlash uchun ularning imkoniyatlarini birlashtirishga imkon beradi. Umuman olganda, TBB C++ da parallel kod yozish jarayonini soddalashtiradi, shu bilan birga yuqori unumdorlik va miqyoslilikni ta’minlaydi. U turli sohalarda, jumladan, ilmiy hisoblash, moliyaviy modellashtirish va yuqori unumli hisoblashda keng qo‘llaniladi.
|
| |