📘 TBB (Intel Threading Building Blocks) في C++: دليل شامل
oneAPI Threading Building Blocks (oneTBB) هي مكتبة متعددة المنصات بلغة C++، طورتها Intel لتبسيط البرمجة المتوازية. توفر المكتبة تجريدات عالية المستوى تتيح للمطورين استغلال المعالجات متعددة النوى بكفاءة، دون الحاجة للخوض في تفاصيل إدارة الخيوط (threads) والتزامن وجدولة المهام على مستوى منخفض.
لماذا تحتاج إلى TBB؟ في العصر الحديث، لا تزيد أداء المعالجات بزيادة سرعة الساعة، بل بزيادة عدد النوى. لكي يعمل برنامجك بشكل أسرع على معالج متعدد النوى، يجب جعله متوازياً. إدارة الخيوط يدوياً (عبر std::thread) معقدة، وعرضة للأخطاء (سباق البيانات، الأقفال المتبادلة)، ويصعب توسيع نطاقها. تحل TBB هذه المشاكل من خلال تقديم:
- جدولة تلقائية للمهام — تقوم المكتبة بتوزيع العمل تلقائياً على النوى المتاحة باستخدام خوارزمية "سرقة العمل" (work stealing).
- حاويات متوازية آمنة — مثل
concurrent_vectorوconcurrent_queueوغيرها، والتي