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