حقائق ورؤى حول حوسبة متوازية

الحوسبة المتوازية (بالإنجليزية: Parallel computing) هيَ إحدى أشكال الحوسبة التي يجري فيها تنفيذ العديد من العمليات أو الحسابات في وقت واحد. عادة يتم تقسيم المشكلات الكبيرة إلى مشكلات أصغر، والتي بدورها يمكن حلها في نفس الوقت. هناك عدة أشكال مختلفة للحوسبة المتوازية: التوازي على مستوى البت (بالإنجليزية: Bit-level)، والتوازي على مستوى التعليمات (بالإنجليزية: Instruction-level parallelism)، وتوازي البيانات (بالإنجليزية: Data parallelism)، وتوازي المهام (بالإنجليزية: Task parallelism). استخدم التوازي لسنوات عديدة، وخاصة في الحوسبة عالية الأداء، ولكن الاهتمام به ازداد أكثر في الآونة الأخيرة بسبب العوائق المادية التي تحول دون زيادة التردد. أصبحت زيادة استهلاك أجهزة الحاسوب للطاقة (وبالتالي الحرارة الناتجة عن ذلك) مصدرًا للقلق في السنوات الأخيرة، ولذلك أصبحت الحوسبة المتوازية النموذج المهيمن في معمارية الحاسوب، وخاصة في نماذج المعالجات متعددة الأنوية.



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

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

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

يتم تحديد الحد النظري الأقصى لزيادة سرعة تنفيذ برنامج واحد نتيجة التوازي من خلال قانون أمدال (بالإنجليزية: Amdahl's Law)، الذي ينص على أن التحسين يكون محدودًا بنسبة الوقت الذي يمكن استغلال التوازي فيه.

قراءة المقال الكامل على ويكيبيديا ←