قانون أمدال في أنظمة الكمبيوتر Amdahl’s law

اقرأ في هذا المقال


في أنظمة الكمبيوتر، إذا كنت ترغب في تحسين نظام يتكون من مكونات مختلفة، كيف ستقرر أي مكون تختار للحصول على أفضل تحسين شامل؟ يمنحك “قانون أمدال” الوسائل لاتخاذ هذا القرار، تمت تسميته على اسم عالم الكمبيوتر “جين أمدال” “مهندس كمبيوتر من شركة (IBM وAmdahl)، وتمّ تقديمه في مؤتمر الكمبيوتر المشترك (AFIPS Spring) في عام (1967)، ويُعرف أيضًا باسم “مبرهنة (Amdahl)” (Amdahl’s argument).

ما هو قانون أمدال Amdahl’s Law

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

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

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

شرح قانون أمدال

“قانون أمدال” أو “مبرهنة (Amdahl)”، إنّها صيغة تعطي التسريع النظري في زمن الوصول لتنفيذ مهمة في عبء عمل ثابت يمكن توقعه من نظام تمّ تحسين موارده، بمعنى آخر، إنّها صيغة تستخدم لإيجاد أقصى قدر ممكن من التحسين بمجرد تحسين جزء معين من النظام، غالبًا ما يستخدم في الحوسبة المتوازية (parallel computing) للتنبؤ بالتسريع النظري (theoretical speedup) عند استخدام معالجات متعددة.

تعريف التسريع Speedup

يتم تعريف التسريع (Speedup) على أنّه نسبة الأداء للمهمة بأكملها باستخدام التحسين والأداء للمهمة بأكملها دون استخدام التحسين، أو يمكن تعريف التسريع على أنّه نسبة وقت التنفيذ للمهمة بأكملها دون استخدام وقت التحسين والتنفيذ لكامل المهمة باستخدام التحسين.

إذا كان (Pe) هو الأداء للمهمة بأكملها باستخدام التحسين عندما يكون ذلك ممكنًا، فإنّ (Pw) هو الأداء للمهمة بأكملها دون استخدام التحسين، و(Ew) هو وقت التنفيذ للمهمة بأكملها دون استخدام التحسين و(Ee) هو وقت التنفيذ للمهمة بأكملها باستخدام التحسين عندما يكون ذلك ممكنًا:

Speedup = Pe/Pw

أو

Speedup = Ew/Ee

يستخدم قانون أمدال عاملين لإيجاد تسريع من بعض التحسينات:

  • الكسر المحسن (Fraction enhanced): النسبة الكسرية لوقت الحساب في الكمبيوتر الأصلي الذي يمكن تحويله للاستفادة من التحسين، على سبيل المثال، إذا كان بإمكان (10) ثوانٍ من وقت تنفيذ برنامج يستغرق (40) ثانية إجمالاً استخدام تحسين، يكون الكسر (10/40)، هذه القيمة التي تمّ الحصول عليها هي “كسر محسن” (Fraction Enhanced)، الكسر المحسن دائمًا أقل من (1).
  • التسريع المحسن (Speedup enhanced): التحسين المكتسب من خلال وضع التنفيذ المحسن؛ أي مدى سرعة تشغيل المهمة إذا تمّ استخدام الوضع المحسن للبرنامج بأكمله، على سبيل المثال، إذا استغرق الوضع المحسّن، لنقل (3) ثوانٍ لجزء من البرنامج، بينما هو (6) ثوانٍ في الوضع الأصلي “الطبيعي من غير تحسين”، يكون التحسين (6/3)، هذه القيمة هي “التسريع المحسّن”، يكون (Speedup Enhanced) دائمًا أكبر من (1).

التسريع الإجمالي (overall Speedup) هو نسبة وقت التنفيذ:

(New execution time)/(Overall Speedup  = (Old execution time

= 1/ [( 1- Fraction enhanced) + (Fraction enhanced/Speed up enhanced)]

حساب تحسين الأداء باستخدام قانون أمدال

رياضياً، تمت صياغة “قانون أمدال” على النحو التالي:

Smax = 1/(1-p) + p/s

حيث:

  • Smax هو أقصى تحسين ممكن للنظام.
  • p – هو الجزء الذي يمكن تحسينه.
  • (1-p) – هو جزء من النظام لا يمكن تحسينه.
  • s – هو عامل تحسين الأداء لـ (p) بعد تطبيق التحسينات.

دعونا الآن نلقي نظرة على كيفية حساب الحد الأقصى من التحسين باستخدام “قانون أمدال”، بالنسبة لنظام معين، إذا كان الجزء الذي يمكن تحسينه يمثل (25٪) من إجمالي النظام ويمكن مضاعفة أدائه، عندئذٍ:

Smax = 1/(1- 0.25) + 0.25/2 = 1.14

لنفترض الآن أنّه بالنسبة لنظام مختلف، الجزء الذي يمكن تحسينه هو (75٪) من إجمالي النظام ويمكن مضاعفة أدائه، لذلك يصبح كالتالي:

Smax = 1/(1- 0.75) + 0.75/2 = 1.6

بمقارنة القيمتين، يمكننا أن نرى أنّه كلما زادت أهمية الجزء الذي لا يمكن تحسينه، قلت فائدة التحسين، لاحظ أنّه إذا كان بإمكان النظام بأكمله الاستفادة من التحسين، فسيكون لدى (Smax) قيمة تساوي (2)، وهو أقصى تحسين ممكن أداؤه.


شارك المقالة: