معالجة متعددة
تعني المعالجة المتعددة استخدام إثنتين أو أكثر من وحدات المعالجة المركزية ضمن نظام حاسوبي واحد، ويدل هذا المصطلح أيضاً على قدرة نظام ما على دعم أكثر من معالج واحد و/أو القدرة على توزيع المهام بين هذه المعالجات، هناك أشكال عديدة تنتج عن هذا الإطار، ويمكن لتعريف المعالجة المتعددة أن يختلف حسب السياق، ويكون في أغلب الأحيان وظيفة ناتجة عن طريق تشكيل وحدات المعالجة المركزية (إما كعدة نوى على رقاقة أو كعدة رقائق في حزمة واحدة، أو كعدة حزم في وحدة نظام واحدة.
ويشير مصطلح المعالجة المتعددة في بعض الأحيان إلى تنفيذ عدة عمليات برمجية متزامنة في نظام ما مقارنة بعملية واحدة في لحظة معينة من الزمن، غير أنه من المناسب أكثر استخدام المصطلحين تعدد الأوامر أو البرمجة المتعددة لوصف هذا المفهوم، والذي غالباً ما يطبق في البرمجيات، بينما من المناسب أكثر استخدام مصطلح المعالجة المتعددة لوصف استعمال عدة وحدات معالجة مركزية، ويمكن لنظام ما أن يكون متعددة المعالجة ومتعددة البرمجة أو أن يكون واحداً من الاثنين أو أن لا يكون أياً منهما.
يمكن في نظام معالجة متعددة أن تكون جميع المعالجات متساوية أو أن تكون بعض المعالجات محجوزة لأغراض خاصة، وتحدد تشكيلة من الاعتبارات الخاصة بالجهاز والتصميم البرمجي لنظام التشغيل التناظر - أو عدمه - في نظام معطى، فعلى سبيل المثال: يمكن أن تتطلب اعتبارات الجهاز أو البرمجيات أن تستجيب وحدة معالجة مركزية واحدة فقط لجميع طلبات المقاطعة القادمة من الجهاز، بينما يمكن توزيع كل العمل في النظام على وحدات المعالجة المركزية الباقية بالتساوي؛ أو يمكن أن يحصر تنفيذ الرمز الخاص بنمط النواة بمعالج واحد (إما معالج محدد أو معالج واحد فقط في الوقت الواحد)، بينما يتم تنفيذ رمز نمط المستخدم وفق أي تشكيلة من المعالجات، ويكون تصميم أنظمة المعالجة المتعددة أسهل عندما يتم فرض هكذا قيود، ولكنها تميل إلى أن تكون أقل فاعلية من الأنظمة التي يتم فيها استغلال جميع وحدات المعالجة المركزية.
وتدعى الأنظمة التي تعامل جميع وحدات المعالجة المركزية بشكل متساوٍ بأنظمة المعالجة المتعددة المتناظرة (SMP)، ويمكن في الأنظمة التي لا تكون فيها جميع وحدات المعالجة المركزية متساوية تقسيم موراد النظام بعدد من الطرق منها المعالجة المتعددة غير المتناظرة(ASMP)، أو النفاذ غير المنتظم إلى الذاكرة(NUMA)، أو الحوسبة المتعددة العنقودية.
يمكن أن يتم استخدام المعالجات في أنظمة المعالجة المتعددة لتنفيذ سلسلة وحيدة من التعليمات في سياقات متعددة (تعليمة وحيدة ومعطيات متعددة SIMD والتي تستخدم غالباً في المعالجة الشعاعية) أو تنفيذ سلاسل متعددة من التعليمات في سياق وحيد (تعليمات متعددة ومعطيات وحيدة MISD والتي تستخدم في الزيادة في الأنظمة الآمنة من الفشل وتطبق أحياناً لوصف المعالجات ذات قنوات التوارد أو تقنية خطوط المعالجة الفائقة)، أو تنفيذ سلاسل متعددة من التعليمات على معطيات متعددة (تعدد التعليمات وتعدد المعطيات MIMD).
تحوي أنظمة المعالجة المتعددة المقترنة بإحكام عدة وحدات معالجة مركزية متصلة على مستوى الناقل، ويمكن لهذه الوحدات أن تمتلك ولوجاً إلى ذاكرة مركزية مشتركة(SMP أو UMA)، أو يمكن أن تشترك في تسلسل ذاكرة هرمي يحوي كلا نوعي الذاكرة المحلية والمشتركة(NUMA)، ويعتبر معالج ريجيتا بي 690 من شركة آي بي إم مثالاً على نظام البرمجة المتعددة المتناظرة عالي الجودة، وسيطرت معالجات زيون من شركة إنتل على سوق المعالِجات المتعددة لحواسب الشركات وظلت هي خيار x86 الوحيد حتى أطلقت شركة إيه إم دي (الأجهزة الدقيقة المتقدمة AMD) مجموعة معالجات أبترون في عام 2004. وتتمتع مجموعتي المعالجات في لوحاتها بذاكرتها التخزينية المؤقتة ولكنها توفر إمكانية النفاذ إلى الذاكرة المشتركة، وذلك عن طريق قناة مشتركة بالنسبة لمعالج إكسيون، وعن طريق قنوات مستقلة بالنسبة للمعالج إوبتيرون إلى ذاكرة الوصول العشوائي في النظام.
وتستخدِم المعالِجات المتعددة ذات الرقائق، وتعرف أيضاً بالحواسب متعددة النوى، أكثر من معالج واحد موضوعة على رقاقة واحدة، ويمكن اعتبارها النموذج الأكثر تطرفاً من المعالِجات المرتبطة بإحكام. وغالباً ما تكون الأنظمة المركزية ذات المعالِجات المتعددة مرتبطة بإحكام.
وترتكز أنظمة المعالِجات المتعددة غير المرتبطة بإحكام (والتي غالباً ما يشار إليها بالعنقودية) على العديد من الحواسب المستقلة المرتبطة رخيصة التكلفة وحيدة أو مزدوجة النواة المرتبطة عبر نظام اتصالات عالي السرعة (من الشائع استخدام شبكة حاسوبية بسرعة جيجابت). وأحد الأمثلة على نظام غير مرتبط بإحكام نظام لينوكس بياولف العنقودي.
إن الأنظمة المرتبطة بإحكام تقدم أداء أفضل وحجمها أصغر من الأنظمة غير المرتبطة بإحكام ولكنها كانت دائماً تتطلب استثمارات أولية أكبر وقد تنخفض قيمتها سريعاً. وعادة ما تكون العقد في النظام غير المرتبط بإحكام مكونات حواسب رخيصة ويمكن إعادة تصنيعها كآلات مستقلة بعد انفصالها عن العنقود.
واستهلاك الطاقة هو أيضاً موضع اعتبار، وتميل الأنظمة المرتبطة بإحكام إلى أن تكون أكثر كفاءة بالطاقة من الأنظمة العنقودية، ويرجع ذلك إلى أنه يمكن تحقيق اقتصاد كبير عن طريق تصميم عناصر تعمل متحدة منذ البداية في الأنظمة المرتبطة بإحكام، بينما تستخدم الأنظمة غير المرتبطة بإحكام عناصر لم يقصد منها بالضرورة أن تستخدم بصورة خاصة في هذه الأنظمة.
في حاسوب يعتمد نظام التعليمة الواحدة المعطى الواحد، يعالج معالج واحد التعليمات بصورة متعاقبة، فتعالج كل تعليمة عنصر واحد من البيانات. وأحد الأمثلة على ذلك بنية حاسوب "فون نيومن" مع مجموعة التعليمات المخفضة RISC.
في حاسوب يعتمد نظام التعليمة الواحدة والبيانات المتعددة، يعالج معالج واحد قناة من التعليمات التي تستطيع كل منها تنفيذ عمليات حسابية على التوازي في مواقع بيانات متعددة.
وتلائم المعالجة المتعددة ذات التعليمة الواحدة والبيانات المتعددة جيداً المعالجة التفرعية أو الشعاعية، التي يمكن فيها تقسيم مجموعة كبيرة جداً من البيانات إلى أجزاء يتم إخضاعها إلى عمليات متماثلة ولكن مستقلة، وتوجه تعليمة واحدة عملية وحدات معالجة متعددة لتنفيذ معالجات في آن واحد معاً على كمية كبيرة من البيانات المحتملة.
وبالنسبة لأنواع معينة من التطبيقات الحاسوبية، يستطيع هذا النوع من هندسة البناء إنتاج زيادات عديدة في الأداء، فيما يتعلق بالوقت المنقضي المطلوب لإتمام مهمة معينة. على أن ما يعيب هندسة البناء هذه هو أن جزءاً كبيراً من النظام يصبح خاملاً عندما يتم تنفيذ مهام برامج أو نظام لا يمكن تقسيمها إلى وحدات يمكن معالجتها على التوازي.
علاوة على أن البرامج يجب أن تُكتب بعناية وبصورة خاصة للاستفادة القصوى من هندسة البناء هذه، وغالباً ما يجب استخدام مجمعات مثالية خاصة مصممة لإنتاج رمز خاص لهذه البيئة. وتقدم بعض المجمعات من هذه الفئة تركيبات أو إضافات خاصة للسماح بصورة مباشرة للمبرمجين بتحديد العمليات التي ستؤدى على التوازي ( مثل عبارات DO FOR ALL (طبق هذه التعليمة على كل العمليات) في نسخة فورتران المستخدمة في إلياك آي في، الذي هو حاسب فائق يستخدم تقنية سيمد.
وتجد سيمد استخداماً واسعاً لها في بعض المجالات مثل محاكاة الكمبيوتر، لكن استخدامها قليل في الحاسب المكتبي متعدد الأغراض وفي بيئة حوسبة الشركات.
تمنح المعالجة المتعددة ذات التعليمات المتعددة والمعطى الواحد بصورة رئيسية ميزة الوفرة، لأن وحدات معالجة متعددة تؤدي المهمة ذاتها على المعطى ذاته، ما يقلل فرص النتائج الخاطئة في حال تعطل إحدى الوحدات. وقد تتضمن هندسة بناء التعليمات المتعددة والمعطى الواحد مقارنات بين وحدات المعالجة لاكتشاف الإخفاقات. وفيما عدا ميزة الوفرة والأمان من الفشل لهذا النمط من المعالجة المتعددة فهو لا يتمتع بمزايا، إلى جانب أنه غالي الثمن جداً. وهو لا يُحسن الأداء. ويمكن تطبيقه بطريقة شفافة للبرمجيات. ويُستخدم في المعالِجات الشعاعية ويطبق في الآلات التي تحتمل الخطأ.
تلائم ميمد تشكيلة واسعة من المهام التي يمكن فيها توظيف تنفيذ تعليمات مستقلة ومتوازية تماماً تلامس مجموعات مختلفة من البيانات في استخدام إنتاجي. ولهذا السبب، ولأنها سهلة التطبيق تسيطر هذه المعالجة على المعالجات المتعددة.
تُقسم المعالجة إلى خيوط متعددة لكل منها معالجها ضمن عملية واحدة محددة البرنامج أو ضمن عمليات متعددة، وبقدر ما يكون لدى النظام العديد من المواضيع التي تنتظر الإرسال (سواء مواضيع نظام أو مواضيع مستخدِم) فإن هندسة البناء هذه تُحسن استخدام موارد الجهاز.
غير أن هذه المعالجة تثير مسائل الجمود وتنافر الموارد لأن المواضيع قد تتصادم في طريقها إلى الموارد بطريقة غير متوقعة يصعب معالجتها بفعالية. وتتطلب هذه المعالجة ترميزاً خاصاً في نظام تشغيل حاسب إلا أنها لا تتطلب تغيير التطبيقات ما لم تكن البرامج نفسها تستخدم العديد من المواضيع (فهذه المعالجة شفافة بالنسبة للبرامج أحادية الموضوع في إطار معظم برامج التشغيل، ما لم تتخل البرامج طوعاً عن سيطرتها لبرنامج التشغيل). وقد يحتاج كل من النظام وبرنامج المستخدِم إلى استخدام تراكيب برامج مثل سيمافور (وتدعى أيضاً أقفال أو بوابات) للحؤول دون تدخل أحد الخيوط بغيره إذا حصل وتقاطعت مساراتهما أثناء الرجوع إلى نفس البيانات. وتزيد عملية البوابات أو الأقفال هذه من تعقيد الرماز، وتخفض الأداء، وتزيد كثيراً في كمية الاختبار المطلوب، على الرغم من أنه ليس بما يكفي عادة لإنكار مزايا المعالجة المتعددة.
ويمكن أن تنشأ تضاربات على مستوى الأجهزة بين المعالِجات ( تضارب الذاكرات الوسيطة والفساد على سبيل المثال) ويجب حلَّها دائماً في الجهاز أو بتشكيلة من البرنامج والجهاز (مثل تعليمات مسح الذاكرة الوسيطة).
حوسبة متوازية
حوسبة متعددة غير متماثلة
حوسبة متعددة ومتماثلة