ما هي المعالجة المتوازية ؟.. وكيف تعمل
ما هي المعالجة المتوازية
المعالجة المتوازية هي طريقة في
حساب
تشغيل معالجات أو أكثر من وحدات المعالجة المركزية للتعامل مع أجزاء منفصلة من مهمة عامة، وسوف يساعد تقسيم أجزاء مختلفة من المهمة بين معالجات متعددة على تقليل مقدار
الوقت
اللازم لتشغيل البرنامج، يمكن لأي نظام يحتوي على أكثر من وحدة معالجة مركزية إجراء معالجة متوازية، بالإضافة إلى المعالجات متعددة النواة التي توجد بشكل شائع على أجهزة
الكمبيوتر
اليوم.
والمعالجات متعددة النواة هي شرائح IC التي تحتوي على معالجين أو أكثر من أجل أداء أفضل، واستهلاك أقل للطاقة، ومعالجة أكثر كفاءة للمهام المتعددة، تشبه هذه الإعدادات متعددة النواة وجود معالجات متعددة ومنفصلة مثبتة في نفس الكمبيوتر، قد تحتوي معظم أجهزة الكمبيوتر في أي مكان من اثنين إلى أربعة مراكز، وتصل إلى 12 نواة، تستخدم المعالجة المتوازية بشكل شائع لأداء المهام والحسابات المعقدة، عادةً ما يستخدم علماء البيانات المعالجة المتوازية في مهام الحوسبة والبيانات كثيفة الاستخدام.
كيف تعمل المعالجة المتوازية
عادةً ما يقوم عالم الكمبيوتر بتقسيم مهمة معقدة إلى أجزاء متعددة باستخدام أداة برمجية وتعيين كل جزء إلى معالج، ثم يقوم كل معالج بحل الجزء الخاص به، ويتم إعادة تجميع البيانات بواسطة أداة برمجية لقراءة الحل أو تنفيذ المهمة،عادةً ما يعمل كل معالج بشكل
طبيعي
وسيقوم بإجراء عمليات بالتوازي وفقًا للتعليمات، وسحب البيانات من ذاكرة الكمبيوتر، و ستعتمد المعالجات أيضًا على البرامج للتواصل مع بعضها البعض حتى يتمكنوا من الاستمرار في المزامنة فيما يتعلق بالتغييرات في قيم البيانات، بافتراض أن جميع المعالجات تظل متزامنة مع بعضها البعض، في نهاية المهمة، سوف يناسب البرنامج جميع أجزاء البيانات معًا، ويمكن استخدام أجهزة الكمبيوتر التي لا تحتوي على معالجات متعددة في المعالجة المتوازية إذا تم ربطها ببعضها البعض لتشكيل مجموعة.
أنواع المعالجة المتوازية
هناك أنواع متعددة من المعالجة المتوازية، اثنان من أكثر الأنواع استخدامًا هما SIMD و MIMD، SIMD، أو البيانات المتعددة ذات التعليمات الفردية، هي شكل من أشكال المعالجة المتوازية حيث يكون للكمبيوتر معالجين أو أكثر يتبعان نفس مجموعة التعليمات بينما يتعامل كل معالج مع بيانات مختلفة، تُستخدم SIMD عادةً في تحليل مجموعات البيانات الكبيرة التي تستند إلى نفس
المعايير
المحددة.
-
تعد MIMD شكلًا شائعًا آخر للمعالجة المتوازية حيث يحتوي كل كمبيوتر على اثنين أو أكثر من المعالجات الخاصة به وسيحصل على البيانات من تدفقات بيانات منفصلة.
-
نوع آخر أقل استخدامًا من المعالجة المتوازية يتضمن MISD، أو بيانات فردية متعددة التعليمات، حيث يستخدم كل معالج خوارزمية مختلفة مع نفس بيانات الإدخال.
تاريخ المعالجة المتوازية
-في أقدم أجهزة الكمبيوتر، كان يتم تشغيل برنامج واحد فقط في كل مرة، سيستغرق تشغيل برنامج حسابي مكثف يستغرق
ساعة
واحدة للتشغيل وكذلك برنامج نسخ الشريط الذي يستغرق ساعة واحدة للتشغيل ما مجموعه ساعتين، سمح شكل مبكر من المعالجة المتوازية بالتنفيذ المتشابك لكلا البرنامجين معًا، سيبدأ الكمبيوتر عملية الإدخال / الإخراج، وأثناء انتظار اكتمال العملية، سيقوم بتنفيذ البرنامج كثيف المعالج، سيكون إجمالي وقت التنفيذ للوظيفتين أكثر من ساعة واحدة بقليل.
-التحسين التالي كان
البرمجة
المتعددة، في نظام متعدد البرامج، تم السماح لبرامج متعددة
مقدمة
من المستخدمين باستخدام المعالج لفترة قصيرة، بالنسبة للمستخدمين، كانت جميع البرامج تعمل في نفس الوقت، ظهرت مشاكل التنازع على الموارد أولاً في هذه الأنظمة، أدت الطلبات الصريحة للحصول على الموارد إلى مشكلة الجمود، حيث من شأن الطلبات المتزامنة للموارد أن تمنع البرنامج بشكل فعال من الوصول إلى المورد، ويؤدي التنافس على الموارد على الأجهزة التي لا تحتوي على تعليمات لفك الارتباط إلى إجراء روتيني للقسم الحرج.
-كانت معالجة المتجهات محاولة أخرى لزيادة الأداء عن طريق القيام بأكثر من شيء في وقت واحد، وفي هذه الحالة، تمت إضافة القدرات إلى الأجهزة للسماح بتعليمة واحدة بإضافة (أو طرح، أو مضاعفة، أو معالجة) صفيفين من الأرقام، كان هذا ذا قيمة في بعض التطبيقات الهندسية حيث حدثت البيانات بشكل طبيعي في شكل متجهات أو مصفوفات،في التطبيقات ذات البيانات الأقل تشكيلًا جيدًا، لم تكن معالجة المتجهات ذات قيمة كبيرة.
-كانت الخطوة التالية في المعالجة المتوازية هي إدخال المعالجة المتعددة، في هذه الأنظمة، يشترك معالجان أو أكثر في العمل الذي يتعين القيام به، الإصدارات الأقدم كان لها تكوين رئيسي / تابع، وتمت برمجة معالج واحد (المعالج الرئيسي) ليكون مسؤولاً عن جميع الأعمال في النظام، والآخر يؤدي فقط تلك المهام التي كلفه بها السيد، كان هذا الترتيب ضروريًا لأنه لم يتم فهم كيفية برمجة الآلات حتى يتمكنوا من
التعاون
في إدارة موارد النظام.[1]
أساسيات هندسة المعالجة المتوازية
توجد بنية الكمبيوتر المتوازية في مجموعة متنوعة من أجهزة الكمبيوتر المتوازية، مصنفة وفقًا للمستوى الذي يدعم فيه الجهاز التوازي، وتعمل تقنيات هندسة وبرمجة الكمبيوتر الموازية معًا للاستفادة الفعالة من هذه الأجهزة، وتشمل فئات معماريات الكمبيوتر المتوازية ما يلي:
-
الحوسبة متعددة النواة
المعالج متعدد النواة عبارة عن دائرة متكاملة لمعالج الكمبيوتر مع اثنين أو أكثر من مراكز المعالجة المنفصلة، كل منها ينفذ تعليمات البرنامج بالتوازي، ويتم دمج النوى في قوالب متعددة في حزمة شريحة واحدة أو في قالب دائرة متكاملة واحدة، وقد تنفذ بنيات مثل تعدد الخيوط، أو superscalar، أو ناقل، أو VLIW، تُصنف البنى متعددة النواة إما على أنها متجانسة، والتي تتضمن فقط نوى متطابقة، أو غير متجانسة، والتي تتضمن نوى غير متطابقة.
-
المعالجة المتعددة المتماثلة
أجهزة الكمبيوتر متعددة المعالجات وبنية البرامج التي يتم فيها التحكم بمعالجين أو أكثر من المعالجات المتجانسة المستقلة بواسطة مثيل نظام تشغيل واحد يعامل جميع المعالجات على قدم المساواة، ومتصل بذاكرة رئيسية واحدة مشتركة مع وصول كامل إلى جميع الموارد المشتركة و الأجهزة، يحتوي كل معالج على ذاكرة تخزين مؤقت خاصة، ويمكن توصيله باستخدام شبكات متداخلة على الرقاقة، ويمكنه العمل في أي مهمة بغض
النظر
عن مكان وجود البيانات الخاصة بهذه المهمة في الذاكرة.
-
الحوسبة الموزعة
توجد مكونات النظام الموزعة على أجهزة كمبيوتر مختلفة متصلة بالشبكة تقوم بتنسيق إجراءاتها من خلال الاتصال عبر HTTP الخالص وموصلات تشبه RPC وقوائم انتظار الرسائل، تشمل الخصائص المهمة للأنظمة الموزعة الفشل المستقل للمكونات وتزامن المكونات، عادةً ما يتم تصنيف البرمجة الموزعة على أنها معمارية عميل، خادم، أو ثلاث طبقات، أو فئة n، أو معمارية نظير إلى نظير، هناك الكثير من التداخل في الحوسبة الموزعة والمتوازية وتستخدم المصطلحات أحيانًا بالتبادل.
-
الحوسبة المتوازية الضخمة
تشير إلى استخدام العديد من أجهزة الكمبيوتر أو معالجات الكمبيوتر لتنفيذ مجموعة من العمليات الحسابية في وقت واحد على التوازي، تتضمن إحدى المقاربات تجميع العديد من المعالجات في كتلة حاسوبية مركزية محكمة التنظيم، طريقة أخرى هي الحوسبة الشبكية، حيث تعمل العديد من أجهزة الكمبيوتر الموزعة على نطاق واسع معًا وتتواصل عبر الإنترنت لحل مشكلة معينة.
تشمل معماريات الكمبيوتر المتوازية الأخرى أجهزة الكمبيوتر المتوازية المتخصصة، والحوسبة العنقودية، و الحوسبة الشبكية، والمعالجات المتجهة، والدوائر المتكاملة الخاصة بالتطبيقات، والحوسبة ذات الأغراض العامة على وحدات معالجة الرسومات ( GPGPU )، والحوسبة القابلة لإعادة التشكيل باستخدام مصفوفات البوابة القابلة للبرمجة الميدانية، وتكون الذاكرة الرئيسية في أي بنية كمبيوتر متوازية هي إما ذاكرة موزعة أو ذاكرة مشتركة.[2]