تصميم موجه نحو البيانات

في مجال الحوسبة ، يُعدّ التصميم الموجّه نحو البيانات منهجًا لتحسين البرامج، مدفوعًا بالاستخدام الأمثل لذاكرة التخزين المؤقت لوحدة المعالجة المركزية ، ويُستخدم غالبًا في تطوير ألعاب الفيديو . [ 1 ] يركز هذا المنهج على تخطيط البيانات، وفصل الحقول وفرزها وفقًا لاحتياجاتها، والتفكير في تحويلات البيانات. ومن أبرز مؤيديه مايك أكتون، [ 2 ] وسكوت مايرز ، [ 3 ] وجوناثان بلو .

يُعدّ المصفوفة المتوازية (أو بنية المصفوفات ) المثال الرئيسي للتصميم الموجه نحو البيانات. وهي تُقارن بمصفوفة البنى النموذجية للتصميمات الموجهة نحو الكائنات.

قد يُعتبر تعريف التصميم الموجه نحو البيانات كنموذج برمجي مثيراً للجدل، إذ يعتقد الكثيرون أنه يمكن استخدامه جنباً إلى جنب مع نموذج آخر، [ 4 ] ولكن نظراً لتركيزه على تخطيط البيانات، فإنه غير متوافق أيضاً مع معظم النماذج الأخرى. [ 1 ]

الدوافع

أصبحت هذه الأساليب شائعة بشكل خاص في منتصف العقد الأول من الألفية الثانية، خلال الجيل السابع من أجهزة ألعاب الفيديو ، والذي شمل جهازي بلاي ستيشن 3 (PS3) وإكس بوكس ​​360 ، وكلاهما يعتمد على معالجات IBM PowerPC . تاريخيًا، غالبًا ما تتميز أجهزة ألعاب الفيديو بوحدات معالجة مركزية (CPU) ضعيفة نسبيًا مقارنةً بنظيراتها من أجهزة الكمبيوتر المكتبية المتطورة. يُعد هذا خيارًا تصميميًا لتخصيص المزيد من الطاقة والموارد لوحدات معالجة الرسومات (GPU). على سبيل المثال، لم تُصنع وحدات المعالجة المركزية من الجيل السابع بمعالجات حديثة للتنفيذ خارج الترتيب ، بل استخدمت معالجات للتنفيذ بالترتيب مع سرعات ساعة عالية وخطوط أنابيب عميقة. بالإضافة إلى ذلك، تقع الذاكرة الرئيسية في معظم أنظمة الحوسبة على بُعد مئات دورات الساعة من عناصر المعالجة . علاوة على ذلك، مع ازدياد سرعة وحدات المعالجة المركزية بالتزامن مع زيادة كبيرة في سعة الذاكرة الرئيسية، يزداد استهلاك البيانات بشكل هائل، مما يزيد من احتمالية حدوث أخطاء في ذاكرة التخزين المؤقت في ناقل البيانات المشترك ، والمعروفة أيضًا باسم اختناق فون نيومان . ونتيجةً لذلك، استُخدمت أساليب المرجعية المحلية للتحكم في الأداء، مما استلزم تحسين أنماط الوصول إلى الذاكرة لمعالجة الاختناقات. كما تشابهت بعض مشكلات البرمجيات مع تلك التي وُوجهت في معالج إيتانيوم ، مما استدعى فكّ الحلقات للجدولة المسبقة.

قارن مع اتجاه الجسم

يُزعم أن مبادئ تصميم البرمجة الكائنية التقليدية تؤدي إلى ضعف في تجاور البيانات، [ 5 ] [ 6 ] ويزداد الأمر سوءًا عند استخدام تعدد الأشكال في وقت التشغيل ( الإرسال الديناميكي ) (وهو ما يُشكل إشكالية خاصة على بعض المعالجات). [ 7 ] [ 1 ] على الرغم من أن البرمجة الكائنية تبدو وكأنها "تنظم الكود حول البيانات"، إلا أنها في الواقع تُنظم الكود المصدري حول أنواع البيانات بدلًا من تجميع الحقول والمصفوفات الفردية فعليًا بتنسيق فعال للوصول إليها بواسطة وظائف محددة. علاوة على ذلك، غالبًا ما تُخفي تفاصيل التخطيط تحت طبقات تجريدية ، بينما يُريد المبرمج المُوجه نحو البيانات مراعاة هذا الأمر أولًا وقبل كل شيء.

انظر أيضاً

مراجع

  1. 1 2 3 لوبيس، نويل (4 ديسمبر 2009). "التصميم الموجه نحو البيانات" . التصميم الموجه نحو البيانات (أو لماذا قد تُلحق الضرر بنفسك باستخدام البرمجة الكائنية التوجه) . تم الاطلاع عليه في 17 أبريل 2020 .
  2. "مؤتمر CppCon 2014: مايك أكتون "التصميم الموجه نحو البيانات ولغة C++"" . يوتيوب . 29 سبتمبر 2014.
  3. "مؤتمر code::dive لعام 2014 - سكوت مايرز: ذاكرة التخزين المؤقت لوحدة المعالجة المركزية ولماذا يهمك" . يوتيوب . 5 يناير 2015.
  4. ريتشارد فابيان (8 أكتوبر 2018). "التصميم الموجه نحو البيانات" . www.dataorienteddesign.com . تاريخ الاسترجاع: 20 ديسمبر 2023 .
  5. "مؤتمر مطوري الحوسبة عالية الأداء من إنتل: عزز رؤيتك وحسّن كفاءة تحويل البيانات إلى متجهات باستخدام قالب تخطيط بيانات إنتل SIMD (إنتل SDLT)" (PDF) .
  6. هولجر هومان؛ فرانسوا لاينن (2018). "SoAx: بنية عامة للمصفوفات بلغة C++ لمعالجة الجسيمات في برامج الحوسبة عالية الأداء". مجلة اتصالات فيزياء الحاسوب . 224 : 325-332 . arXiv : 1710.03462 . Bibcode : 2018CoPhC.224..325H . doi : 10.1016/j.cpc.2017.11.015 . S2CID 2878169 . 
  7. "ما الخطأ في التصميم الموجه للكائنات؟ أين الضرر فيه؟ "يصف هذا المقال المشاكل المتعلقة باستدعاءات الدوال الافتراضية، مثل حالات عدم وجود البيانات في ذاكرة التخزين المؤقت (i-cache).