ربط لبنات البناء

مكتبة oneAPI Threading Building Blocks (oneTBB؛ المعروفة سابقًا باسم Threading Building Blocks أو TBB) هي مكتبة قوالب C++ طورتها شركة إنتل للبرمجة المتوازية على المعالجات متعددة النوى . باستخدام TBB، تُقسّم العملية الحسابية إلى مهام يمكن تشغيلها بالتوازي. وتتولى المكتبة إدارة وجدولة الخيوط لتنفيذ هذه المهام.

ملخص

يقوم برنامج oneTBB بإنشاء ومزامنة وتدمير رسوم بيانية للمهام المترابطة وفقًا للخوارزميات ، أي نماذج البرمجة المتوازية عالية المستوى (المعروفة أيضًا باسم الهياكل الخوارزمية ). ثم تُنفذ المهام مع مراعاة تبعيات الرسوم البيانية. يصنف هذا النهج TBB ضمن مجموعة من تقنيات البرمجة المتوازية التي تهدف إلى فصل البرمجة عن تفاصيل الجهاز الأساسي.

تُطبّق مكتبة oneTBB تقنية " سرقة العمل" لموازنة عبء العمل المتوازي على أنوية المعالجة المتاحة، بهدف زيادة استغلالها وبالتالي تحسين قابلية التوسع. في البداية، يُقسّم عبء العمل بالتساوي بين أنوية المعالجة المتاحة. إذا أنهى أحد الأنوية عمله بينما لا تزال أنوية أخرى لديها كمية كبيرة من العمل في قائمة الانتظار، تُعيد oneTBB تخصيص جزء من العمل من أحد الأنوية المشغولة إلى النواة الخاملة. هذه الخاصية الديناميكية تفصل المبرمج عن الجهاز، مما يسمح للتطبيقات المكتوبة باستخدام المكتبة بالتوسع للاستفادة من أنوية المعالجة المتاحة دون أي تغييرات في شفرة المصدر أو ملف البرنامج القابل للتنفيذ. في تقييم أُجري عام 2008 لتطبيق "سرقة العمل" في TBB، وجد باحثون من جامعة برينستون أنه غير مثالي للأعداد الكبيرة من أنوية المعالجة، حيث تسبب في استهلاك ما يصل إلى 47% من وقت الحوسبة في تكاليف الجدولة عند تشغيل بعض الاختبارات المعيارية على نظام ذي 32 نواة. [ 3 ]

يستخدم oneTBB، مثل مكتبة STL (وجزء مكتبة C++ القياسية المبني عليها)، القوالب على نطاق واسع. وهذا يوفر ميزة تعدد الأشكال ذي التكلفة المنخفضة ، لأن القوالب عبارة عن بنية وقت الترجمة التي يمكن لمترجمات C++ الحديثة تحسينها إلى حد كبير.

يتوفر برنامج oneTBB تجاريًا كتوزيع ثنائي مع الدعم، [ 4 ] وكبرنامج مفتوح المصدر في كل من شكل المصدر والشكل الثنائي.

لا يوفر oneTBB ضمانات للحتمية أو الخلو من سباقات البيانات . [ 5 ]

محتويات المكتبة

oneTBB عبارة عن مجموعة من المكونات للبرمجة المتوازية:

  • الخوارزميات الأساسية: parallel_for، parallel_reduce،parallel_scan
  • الخوارزميات المتقدمة: parallel_pipeline،parallel_sort
  • الحاويات : concurrent_queue، concurrent_priority_queue، concurrent_vector، concurrent_hash_map، concurrent_unordered_map، ، concurrent_unordered_set، concurrent_map،concurrent_set
  • تخصيص الذاكرة: scalable_malloc, scalable_free, scalable_realloc, scalable_calloc, scalable_allocator,cache_aligned_allocator
  • الاستبعاد المتبادل : mutex، spin_mutex، queuing_mutex، spin_rw_mutex، queuing_rw_mutex،recursive_mutex
  • التوقيت: طابع زمني عالمي محمول دقيق
  • جدولة المهام: الوصول المباشر للتحكم في إنشاء المهام وتفعيلها

انظر أيضاً

ملحوظات

  1. "إصدارات GitHub من OneAPI Threading Building Blocks" . GitHub .
  2. "خيارات مجانية لدعم Intel بنفسك، بدون رسوم ملكية" .
  3. كونتريراس، جيلبرتو؛ مارتونوسي، مارغريت (2008). توصيف وتحسين أداء وحدات بناء الخيوط من إنتل (ملف PDF) . ندوة IEEE الدولية حول توصيف أعباء العمل.
  4. https://software.intel.com/en-us/intel-tbb الصفحة الرئيسية للإصدار التجاري من Intel Threading Building Blocks
  5. بوتشينو الابن، روبرت ل.؛ أدفي، فيكرام س.؛ أدفي، ساريتا ف.؛ سنير، مارك (2009). يجب أن تكون البرمجة المتوازية حتمية بشكل افتراضي . ورشة عمل USENIX حول المواضيع الساخنة في التوازي.

مراجع

  • فوس، مايكل. أسينجو، رافائيل؛ رايندرز، جيمس (2019)، Pro TBB ، Apress، دوى : 10.1007 / 978-1-4842-4398-5 ، ISBN 978-1-4842-4397-8، S2CID 195847637 
  • ريندرز، جيمس (يوليو 2007)، لبنات بناء الخيوط في إنتل: تجهيز لغة C++ للتوازي في المعالجات متعددة النوى (  طبعة ورقية)، سيباستوبول: أورايلي ميديا، رقم ISBN 978-0-596-51480-8
  • فوس، م. (أكتوبر 2006)، تبسيط التوازي القابل للتوسع باستخدام خوارزميات التوازي العامة من Intel Threading Building Blocks ، مؤرشف من الأصل في 2012-02-05 ، تم استرجاعه في 2007-06-06
  • فوس، م. (ديسمبر 2006)، تمكين التوازي الآمن والقابل للتوسع باستخدام حاويات التزامن في وحدات بناء الخيوط من إنتل ، مؤرشف من الأصل في 5 فبراير 2012 ، تم استرجاعه في 6 يونيو 2007
  • هادسون، ريتشارد ل.؛ ساها، براتين؛ عدل طباطبائي، علي رضا؛ هيرتزبيرغ، بنجامين س. (2006)، "McRT-Malloc"، وقائع الندوة الدولية لإدارة الذاكرة لعام 2006 - ISMM '06 ، الصفحات 74-83 ، doi : 10.1145/1133956.1133967 ، ISBN  978-1595932211، S2CID 9120368