24-Variant.
a. OpenMP va Intel Threading Building Blocks parallellashtirish kutubxonalari haqida malumot va ularni solishtiring.
Threading building block avfzallik tomonlari:
Intel Threading Building Blocks - bu sizning ishingiz bo'yicha mutaxassis bo'lmasdan ko'p yadroli ko'rsatkichlardan foydalanishga yordam beradigan kutubxona. Odatda ishlab chiquvchilar uchun qo'llanmaning dastlabki qismlarida tushuntirilgan asosiy fikrlarni amalga oshirish orqali ko'p yadroli protsessorlarning ishlashini yaxshilashingiz mumkin. Sizning tajribangiz o'sib borishi bilan siz ilg'or bo'limlarda ko'rib chiqilgan murakkab mavzularga sho'ng'ishni xohlashingiz mumkin.
Parallel dasturlashda turli xil yondashuvlar mavjud, ular platformaga bog'liq bo'lgan iplar primitivlaridan foydalanishdan ekzotik yangi tillarga qadar. Intel Threading qurilish bloklarining afzalligi shundaki, u xom iplardan yuqori darajada ishlaydi, ammo ekzotik tillar va kompilyatorlarga ehtiyoj sezmaydi. Siz uni ISO C ++ ni qo'llab-quvvatlovchi har qanday kompilyator bilan ishlatishingiz mumkin. Kutubxona odatdagi to'plam to'plamlaridan quyidagicha farq qiladi:
Intel Threading qurilish bloklari boshqa torli paketlar bilan mos keladi. Kutubxona barcha ish zarrachalaridagi muammolarni hal qilish uchun mo'ljallanmaganligi sababli, u boshqa oqim paketlari bilan muammosiz yashashi mumkin.
Intel Threading qurilish bloklari o'lchovli, ma'lumotlarning parallel dasturlashiga urg'u beradi. Dasturni alohida funktsional bloklarga ajratish va har bir blokga alohida ipni tayinlash bu odatda yaxshi ishlamaydigan echim, chunki odatda funktsional bloklar soni aniqlangan. Bundan farqli o'laroq, Intel Threading Building Blocks ma'lumotlar parallel dasturlashni ta'kidlab, bir nechta iplarni to'plamning turli qismlarida ishlashiga imkon beradi. Ma'lumotlarga parallel dasturlash masshtabni kichik qismlarga bo'lish orqali protsessorlarning katta soniga mos keladi. Parallel dasturlash bilan protsessorlarni qo'shganda dasturning ishlashi oshadi. Intel Threading qurilish bloklari umumiy dasturlashga tayanadi. An'anaviy kutubxonalar interfeyslarni aniq turlari yoki asosiy sinflari bo'yicha belgilaydi. Buning o'rniga Intel Threading Building Blocks umumiy dasturlashni qo'llaydi. Umumiy dasturlashning mohiyati eng kam cheklovlar bilan mumkin bo'lgan eng yaxshi algoritmlarni yozishdan iborat. C ++ standart shablonlar kutubxonasi (STL) umumiy dasturlashning yaxshi namunasidir, bunda interfeyslar turlarga talablar bilan belgilanadi. Masalan, C ++ STL-da ketma-ketlikdagi iteratorlar nuqtai nazaridan mavhum ravishda aniqlangan ketma-ketlikni saralaydigan shablon funktsiyasi sort mavjud. Takrorlagichlarga qo'yiladigan talablar:
Tasodifiy kirishni ta'minlang
* I <* j iborasi, agar iterator tomonidan ko'rsatilgan element j iterator tomonidan ko'rsatilgan elementdan oldin bo'lsa, aks holda noto'g'ri.
Swap (* i, * j) ifodasi ikkita elementni almashtiradi.
Do'stlaringiz bilan baham: |