ما هي المعالجة المتوازية

المعالجة المتوازية هي طريقة لتشغيل وحدة معالجة مركزية واحدة أو أكثر للتعامل مع أجزاء منفصلة من مهمة شائعة.تقسيم أجزاء مختلفة من مهمة بين معالجات متعددة سيساعد على تقليل المقدار المطلوب لتشغيل برنامج أي نظام به أكثر من وحدة معالجة مركزية يمكنه أداء المعالجة المتوازية، بالإضافة إلى المعالجات متعددة النواة الشائعة في أجهزة اليوم.

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

كيف تعمل المعالجة المتوازية

عادة، يقوم عالم الكمبيوتر بتقسيم مهمة معقدة إلى أجزاء متعددة باستخدام أداة برمجية وتعيين كل جزء إلى معالج، ثم يقوم كل معالج بحل الجزء الخاص به، ويتم إعادة تجميع البيانات بواسطة أداة برمجية لقراءة الحل أو تنفيذ المهمة. العمليات بالتوازي وفقًا للتعليمات، وسحب البيانات من ذاكرة الكمبيوتر، ستعتمد المعالجات أيضًا على البرامج للتواصل مع بعضها البعض حتى يتمكنوا من الاستمرار في المزامنة فيما يتعلق بالتغييرات في قيم البيانات، على افتراض أن جميع المعالجات تظل متزامنة مع بعضها البعض، على في نهاية المهمة، ستلائم برمجة جميع أجزاء البيانات معًا، ويمكن استخدام أجهزة الكمبيوتر التي لا تحتوي على معالجات متعددة في المعالجة المتوازية إذا تم ربطها معًا لتشكيل مجموعة.

أنواع المعالجة المتوازية

هناك عدة أنواع من المعالجة المتوازية، اثنان من أكثر الأنواع استخدامًا هما SIMD و MIMD. SIMD، أو البيانات المتعددة ذات التعليمات الفردية، هي شكل من أشكال المعالجة المتوازية حيث يحتوي الكمبيوتر على معالجين أو أكثر يتبعون نفس مجموعة التعليمات بينما يتعامل كل معالج مع بيانات مختلفة. يستخدم SIMD عادةً لتحليل مجموعات البيانات الكبيرة التي تستند إلى نفس المعرف.

  • يعد MIMD شكلًا شائعًا آخر للمعالجة المتوازية حيث يحتوي كل كمبيوتر على معالجين أو أكثر خاص به وسيحصل على البيانات من تدفقات بيانات منفصلة.
  • نوع آخر أقل شيوعًا من المعالجة المتوازية يتضمن MISD، أو بيانات مفردة متعددة التعليمات، حيث يستخدم كل معالج خوارزمية مختلفة مع نفس بيانات الإدخال.

تاريخ المعالجة المتوازية

في أقدم أجهزة الكمبيوتر، سيتم تشغيل برنامج واحد فقط في كل مرة. برنامج حسابي شامل استغرق تشغيله واحدًا وبرنامج نسخ شريط استغرق ساعة واحدة للتشغيل سيستغرق ما مجموعه ساعتين. سمح شكل مبكر من المعالجة المتوازية بالتنفيذ المتشابك لكلا البرنامجين معًا. الكمبيوتر عبارة عن عملية إدخال / إخراج، وأثناء انتظار اكتمال العملية، سيقوم بتنفيذ برنامج كثيف المعالج، وسيكون إجمالي وقت تنفيذ الوظيفتين أكثر من ساعة واحدة بقليل.

التحسين التالي كان متعدد اللاعبين. في نظام متعدد البرامج، تم السماح لبرامج متعددة المستخدمين باستخدام المعالج لفترة قصيرة. بالنسبة للمستخدمين، كانت جميع البرامج تعمل في نفس الوقت. ظهرت مشاكل التنازع على الموارد أولاً في هذه الأنظمة. أدت الطلبات الصريحة للحصول على الموارد إلى مشكلة طريق مسدود، حيث تؤدي الطلبات المتزامنة للموارد بشكل فعال إلى منع البرنامج من الوصول إلى المورد، ويؤدي التنافس على الموارد على الأجهزة دون تعليمات لفك الارتباط إلى إجراء روتيني للقسم الحرج.

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

كانت الخطوة التالية في المعالجة المتوازية هي إدخال المعالجة المتعددة. في هذه الأنظمة، يشترك معالجان أو أكثر في العمل الذي يتعين القيام به. كان للإصدارات القديمة تكوين رئيسي / تابع، وتمت برمجة معالج واحد (المعالج الرئيسي) ليكون مسؤولاً عن جميع الأعمال في النظام، والآخر يؤدي فقط تلك المهام المعينة له من قبل السيد، وكان هذا الترتيب ضروريًا لأن لم يكن مفهومًا كيفية برمجة الآلات حتى تتمكن من إدارة موارد النظام.

أساسيات هندسة المعالجة المتوازية

توجد معماريات الكمبيوتر المتوازية في مجموعة متنوعة من أجهزة الكمبيوتر المتوازية، مصنفة وفقًا للمستوى الذي تدعم فيه الأجهزة التوازي. تعمل تقنيات هندسة وبرمجة الكمبيوتر الموازية معًا للاستفادة الفعالة من هذه الأجهزة. تشمل فئات معماريات الكمبيوتر المتوازية ما يلي

  • متعدد النواة

المعالج متعدد النواة عبارة عن دائرة متكاملة لمعالج الكمبيوتر مع اثنين أو أكثر من مراكز المعالجة المنفصلة، كل منها ينفذ تعليمات البرنامج بالتوازي. يتم تصنيف الهياكل متعددة النواة فوق السقالة أو المتجهية أو VLIW على أنها إما متجانسة، والتي تتضمن فقط نوى متطابقة، أو غير متجانسة، والتي تتضمن نوى غير متطابقة.

  • معالجة متعددة متماثلة

أجهزة الكمبيوتر متعددة المعالجات وبنية البرامج التي يتم فيها التحكم في اثنين أو أكثر من المعالجات المتجانسة المستقلة بواسطة مثيل نظام تشغيل واحد يعامل جميع المعالجات على قدم المساواة، ومتصل بذاكرة رئيسية مشتركة واحدة مع وصول كامل إلى جميع الموارد والأجهزة المشتركة، كل معالج يحتوي على ذاكرة تخزين جهاز توقيت خاص، يمكن ربطه باستخدام شبكات على الرقاقة، ويمكنه العمل في أي مهمة بغض النظر عن مكان البيانات الخاصة بهذه المهمة في الذاكرة.

  • الحوسبة الموزعة

توجد مكونات النظام الموزعة على أجهزة كمبيوتر مختلفة متصلة بالشبكة وتنسق إجراءاتها من خلال اتصال HTTP خالص وموصلات تشبه RPC وقوائم انتظار الرسائل تشمل الخصائص الهامة للأنظمة الموزعة الفشل المستقل عن المكون ومزامنة المكونات عادةً ما يتم تصنيف البرمجة الموزعة على أنها بنية خادم العميل . هناك الكثير من التداخل في الحوسبة الموزعة والمتوازية، وتستخدم المصطلحات في بعض الأحيان بالتبادل. ️

  • حوسبة موازية ضخمة

يشير إلى استخدام العديد من أجهزة الكمبيوتر أو معالجات الكمبيوتر لإجراء مجموعة من العمليات الحسابية في وقت واحد على التوازي. توسيع نطاق العمل معًا والتواصل عبر الإنترنت لحل مشكلة معينة.

تشمل معماريات الكمبيوتر المتوازية الأخرى أجهزة الكمبيوتر المتوازية المتخصصة، والحوسبة العنقودية، والحوسبة الشبكية، والمعالجات المتجهة، والدوائر المتكاملة الخاصة بالتطبيقات، والحوسبة للأغراض العامة على وحدات معالجة الرسومات (GPGPUs)، والحوسبة القابلة لإعادة التشكيل باستخدام مصفوفات البوابة القابلة للبرمجة الميدانية، والذاكرة الرئيسية في أي بنية كمبيوتر موازية هي إما ذاكرة موزعة أو ذاكرة مشتركة.

ال