يفتقر محتوى هذه المقالة إلى الاستشهاد بمصادر. (يناير 2022) |
التوازي على مستوى المهام تقنية ومفهوم مستعمل في مجال الحوسبة المتوازية. في نظام متعدد المعالجات، يتحقق توازي المهام عندما ينفذ كل معالج خيطا مختلفا (أو عملية) على نفس البيانات أو بيانات مختلفة. قد تنفذ الخيوط نفس التعليمات البرمجية أو تعليمات مختلفة. في الحالة العامة، تتواصل الخيوط الجاري تنفيذها مع بعضهم البعض. يحدث الاتصال عادة بتمرير البيانات من خيط لآخر كجزء من سير العمل.
كمثال بسيط، إذا كنا ننفذ التعليمات البرمجية على نظام بمعالجين (وحدات معالجة مركزية «أ» و «ب») في بيئة متوازية ونرغب بالقيام بمهام «م1» و «م2». ممن الممكن ان نقول للوحدة «أ» للقيام بمهمة «م1» وللوحدة «ب» بالقيام بالمهمة «م2» في نفس الوقت. مما يقلل من وقت التنفيذ. ويمكن اسناد المهام باستخدام عبارات شرط على النحو المبين أدناه.
توازي المهام تؤكد على طبيعة التوزيع (بشكل متواز) للمعالجة (أي الخيوط)، بدلا من البيانات (التوازي البيانات). تنحصر معظم البرامج المتوازية بين توازي المهام وتوازي البيانات.
الكود التالي تجسيد لتوازي المهام:
برنامج: ... إذا كان معالج=«أ» نفذ مهمة «م1» وإلا إذا كان معالج=«ب» نفذ مهمة «م2» نهاية إذا ... نهاية البرنامج
الهدف من هذا البرنامج هو القيام بمجموع المهام («م1 + م2»). إذا كتبنا البرنامج على النحو الوارد أعلاه وإطلاقه على نظام بمعالجين، فإن تنفيذه في بيئة التشغيل سيكون على النحو التالي.
التعليمات البرمجية التي ينفذها المعالج «أ»:
برنامج: ... نفذ المهمة «م1» ... نهاية البرنامج
التعليمات البرمجية التي ينفذها المعالج «ب»:
برنامج: ... نفذ المهمة «م2» ... نهاية البرنامج
هذا المفهوم يمكن تعميمه على أي عدد كان من المعالجات.