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

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

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

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

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

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

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

واستمر تطوير المعالجات المتوازية وتحسينها بنسبة 10-20% عن طريق تنفيذ بعض العمليات خارج النظام مما سبب تعقيدًا برمجيًا إضافيًا على بعض المبرمجين لتجنب استخدام برنامجين لنفس المعاملات في وقتٍ واحدٍ وهي المشكلة التي لم يتم حلها بعد.

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

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

المراجع