نماذج البرمجة المتوازية
نماذج البرمجة المتوازية هي تجريدات يعبر من خلالها المبرمجون عن الحوسبة وينسقونها عبر العديد من المعالجات لكسب السرعة.
Definition
نموذج البرمجة المتوازية هو تجريد لحاسوب متوازٍ يحدد كيفية تحليل الحوسبة إلى مهام متزامنة، وكيف تتواصل هذه المهام وتتزامن، وكيفية مشاركة البيانات أو توزيعها بين المعالجات، مما يتيح حل مشكلة بشكل أسرع باستخدام وحدات معالجة متعددة.
Scope
تغطي هذه المنطقة نماذج البرمجة المتوازية الرئيسية—الذاكرة المشتركة وتوازي البيانات (الخيوط، OpenMP)، وتمرير الرسائل (MPI)، وبرمجة المسرعات/وحدات معالجة الرسوميات (CUDA، OpenCL)—بالإضافة إلى تصنيف فلين للهندسات المتوازية، وتصميم الخوارزميات المتوازية، وقوانين الأداء (قانون أمدهل وقانون غوستافسون) والمقاييس (السرعة، الكفاءة، قابلية التوسع) التي تحدد وتقيس فائدتها. إنها المكمل للحوسبة المتوازية من جانب الأنظمة الموزعة في هذا المجال الفرعي.
Sub-topics
Core questions
- كيف ينبغي تحليل الحوسبة إلى مهام وتعيينها على المعالجات؟
- أي نموذج برمجة—الذاكرة المشتركة، تمرير الرسائل، أو المسرع—يناسب بنية ومشكلة معينة؟
- ما الذي يحد من السرعة القابلة للتحقيق من التوازي، وكيف تُقاس قابلية التوسع؟
Key theories
- تصنيف فلين
- تُصنف الهندسات المتوازية حسب تدفقات التعليمات والبيانات إلى SISD، SIMD، MISD، و MIMD، وهو إطار لا يزال ينظم التفكير حول آلات المتجهات، وحدات معالجة الرسوميات، والآلات متعددة النوى.
- قانونا أمدهل وغوستافسون
- يحد قانون أمدهل من السرعة من خلال الجزء التسلسلي للبرنامج لحجم مشكلة ثابت، بينما يشير إعادة صياغة غوستافسون إلى أن المشكلات الأكبر يمكن أن تبقي المزيد من المعالجات مشغولة بشكل مفيد، مما يؤطر معًا حدود ووعد التوازي.
- أنماط التصميم المتوازي
- توفر الاستراتيجيات المتكررة—تحليل المهام والبيانات، خطوط الأنابيب، التحليل الهندسي، والعامل الرئيسي—مفردات منظمة لتصميم البرامج المتوازية عبر النماذج.
Clinical relevance
تُعد نماذج البرمجة المتوازية أساس الحوسبة عالية الأداء والعلمية، وتدريب التعلم الآلي على وحدات معالجة الرسوميات (GPUs)، والاستغلال اليومي للمعالجات متعددة النوى؛ ويحدد اختيار النموذج الأداء القابل للتحقيق وقابلية النقل عبر الأجهزة.
History
لقد أطر تصنيف فلين عام 1972 وحجة تسريع أمدهل عام 1967 الحوسبة المتوازية منذ البداية؛ وظهرت النماذج الموحدة مع MPI و OpenMP في التسعينيات وحوسبة وحدات معالجة الرسوميات في الألفينيات، بينما قامت كتب مثل كتاب غراما وزملائه بتقنين تصميم وتحليل الخوارزميات المتوازية.
Debates
- الذاكرة المشتركة مقابل تمرير الرسائل كنموذج افتراضي
- نماذج الذاكرة المشتركة أسهل في البرمجة ولكنها أقل قابلية للتوسع وتخاطر بحدوث سباقات بيانات دقيقة، بينما يتوسع تمرير الرسائل إلى مجموعات كبيرة على حساب الاتصال الصريح؛ تجمع النماذج الهجينة بين الاثنين، ويبقى النموذج الافتراضي الصحيح يعتمد على عبء العمل والهندسة المعمارية.
Key figures
- Gene Amdahl
- Michael Flynn
- Vipin Kumar
- John Gustafson
Related topics
Seminal works
- grama2003
- amdahl1967
- flynn1972
Frequently asked questions
- لماذا لا يمكن أن يؤدي إضافة المزيد من المعالجات إلى جعل أي برنامج سريعًا بشكل تعسفي؟
- يوضح قانون أمدهل أن الجزء التسلسلي من الحوسبة—العمل الذي لا يمكن موازاته—يحد من إجمالي السرعة. إذا كان جزء صغير فقط تسلسليًا بطبيعته، فإنه يهيمن مع زيادة عدد المعالجات، مما يحد من التسريع القابل للتحقيق.