TBB va C++ standart andozalar kutubxonasining parallel algoritmlar

TBB va C++ standart andozalar kutubxonasining parallel algoritmlar
Threading Building Blocks (TBB) kutubxonasidan unumli foydalanish uchun uning C++ standartini qanday qo’llab-quvvatlashi va amalga oshirishini tushunish muhimdir. Biz ushbu bobda TBB ning standart C++ bilan aloqasining uchta jihatini muhokama qilamiz:
1.TBB kutubxonasi ko'pincha C++ standarti uchun yangi bo'lgan parallelizm bilan bog'liq xususiyatlarni o'z ichiga oladi. TBB-ga bunday xususiyatlarni kiritish ishlab chiquvchilarga barcha kompilyatorlardan keng foydalanishdan oldin ularga erta kirish imkonini beradi. Shu nuqtai nazardan, TBB ning barcha oldindan tuzilgan distributivlari endi Intel tomonidan C++ Standart Shablonlar Kutubxonasi (STL) ning parallel algoritmlarini amalga oshirishni o'z ichiga oladi. Ushbu ilovalar multithreadingni amalga oshirish uchun TBB vazifalaridan foydalanadi va vektorizatsiyani amalga oshirish uchun SIMD ko'rsatmalaridan foydalanadi.
2.TBB kutubxonasi, shuningdek, C++ standartiga kiritilmagan, ammo ishlab chiquvchilar uchun parallelizmni ifodalashni osonlashtiradigan xususiyatlarni taqdim etadi. Umumiy parallel algoritmlar va oqim grafigi bunga misol bo'la oladi. Parallel STL algoritmlarini qo'llash imkoniyatlarini kengaytirish uchun TBB tarkibiga kiritilgan maxsus iteratorlarni muhokama qilishga arziydi.
3.C++ standartiga ba'zi qo'shimchalar ma'lum TBB xususiyatlariga bo'lgan ehtiyojni o'zgartirishi mumkinligini ta'kidlaydi. Shu bilan birga, TBB yaqin kelajakda C++ standarti tomonidan qo'llanilmaydigan qiymatga ega ekanligini ham ta'kidlaydi. TBB doimiy foyda keltiradigan xususiyatlar qatoriga ishni o'zlashtirish bo'yicha vazifalarni rejalashtiruvchisi, tarmoqdan himoyalangan konteynerlari, oqim grafigi API va kengaytiriladigan xotira ajratgichlari kiradi.
TBB ni kompozitsion kutubxonaga aylantiruvchi xususiyatlari.
Threading Building Blocks (TBB) kutubxonasi dizayni bo'yicha kompozitsion kutubxonadir. U birinchi marta taqdim etilganida, parallel dasturlash kutubxonasi sifatida u nafaqat tekis, monolit ilovalarni ishlab chiquvchilarga emas, balki barcha ishlab chiquvchilarga mo'ljallangan - kompozitsyonaviy muammolarni hal qilish kerakligi e'tirof etilgan edi. TBBda qo'llaniladigan ilovalar ko'pincha modulli bo'lib, o'zlarida parallelizmni o'z ichiga olishi mumkin bo'lgan third-party kutubxonalaridan foydalanadi. Boshqa parallel algoritmlar ataylab yoki beixtiyor TBB kutubxonasidan foydalanadigan algoritmlar bilan tuzilgan bo'lishi mumkin. Bundan tashqari, ilovalar odatda ko'p dasturlashtirilgan muhitlarda, masalan, umumiy serverlarda yoki shaxsiy noutbuklarda bajariladi, bu yerda bir nechta jarayonlar bir vaqtning o'zida bajariladi. Barcha ishlab chiquvchilar uchun samarali parallel dasturlash kutubxonasi bo'lish uchun TBB to'g'ri joylashuvga ega bo'lishi kerak. Va shunday bo'ladi! Uning xususiyatlaridan foydalangan holda kengaytiriladigan parallel ilovalarni yaratish uchun TBB dizayni haqida batafsil ma'lumotga ega bo'lish shart bo'lmasa-da, qiziqqanlar ba'zi tafsilotlarni ko'rib chiqishi mumkin. Nima uchun TBB kompozitsiyada juda samarali ekanligi haqida xulosa qilishimiz mumkin.
|