قانون أمدال

في هندسة الحاسوب ، قانون أمدال (أو حجة أمدال [ 1 ] ) هو صيغة تحد من تسريع المهمة عند إضافة موارد إلى النظام الذي ينفذ تلك المهمة.
يمكن صياغة القانون على النحو التالي :
إن التحسن العام في الأداء الذي يتم تحقيقه من خلال تحسين جزء واحد من النظام محدود بنسبة الوقت الذي يتم فيه استخدام الجزء المحسن فعليًا. [ 2 ]
وقد سميت على اسم عالم الكمبيوتر جين أمدال ، وتم تقديمها في المؤتمر المشترك الربيعي للحاسوب التابع للاتحاد الأمريكي لجمعيات معالجة المعلومات (AFIPS) في عام 1967.
يُستخدم قانون أمدال غالبًا في الحوسبة المتوازية للتنبؤ بالتسارع النظري عند استخدام معالجات متعددة.
تعريف
في سياق قانون أمدال، يمكن تعريف التسريع على النحو التالي: [ 3 ]
أو
يمكن صياغة قانون أمدال بالطريقة التالية: [ 4 ]
أين
- يمثل إجمالي تسريع البرنامج
- يمثل هذا النسبة المئوية للوقت الذي يقضيه المستخدم في جزء الكود الذي يتم فيه إجراء التحسينات
- يمثل مدى التحسن
الغالباً ما يكون وقت التنفيذ أقل بكثير مما قد يتوقعه المرء. على سبيل المثال، إذا قام مبرمج بتحسين جزء من الكود الذي يمثل 10% من إجمالي وقت التنفيذ (أي(0.10) ويحقق من أصل 10000، ثم يصبح 1.11، مما يعني تحسنًا بنسبة 11% فقط في سرعة البرنامج الإجمالية. لذا، على الرغم من التحسن الكبير في قسم واحد، فإن الفائدة الإجمالية ضئيلة للغاية. في مثال آخر، إذا قام المبرمج بتحسين قسم يمثل 99% من وقت التنفيذ (أي(0.99) مع عامل تسريع قدره 100 (أيمن أصل 100)، الـلا تتجاوز النسبة 50. وهذا يشير إلى أن نصف الزيادة المحتملة في الأداء (سيصل إلى 100 إذا تم تغطية 100% من وقت التنفيذ) ويُفقد بسبب نسبة الـ 1% المتبقية من وقت التنفيذ التي لم يتم تحسينها. [ 4 ]
الاشتقاق
يمكن تقسيم المهمة التي ينفذها نظام تم تحسين موارده مقارنة بنظام مماثل أولي إلى جزأين:
- جزء لا يستفيد من تحسين موارد النظام؛
- جزء يستفيد من تحسين موارد النظام.
مثال على ذلك برنامج حاسوبي يعالج الملفات. قد يقوم جزء من هذا البرنامج بمسح دليل القرص وإنشاء قائمة بالملفات داخليًا في الذاكرة. بعد ذلك، يمرر جزء آخر من البرنامج كل ملف إلى عملية معالجة منفصلة. لا يمكن تسريع الجزء الذي يمسح الدليل وينشئ قائمة الملفات على حاسوب متوازٍ، ولكن يمكن تسريع الجزء الذي يعالج الملفات.
يُشار إلى وقت تنفيذ المهمة بأكملها قبل تحسين موارد النظام بـيشمل ذلك وقت تنفيذ الجزء الذي لن يستفيد من تحسين الموارد، ووقت تنفيذ الجزء الذي سيستفيد منه. ويُرمز إلى نسبة وقت تنفيذ المهمة التي ستستفيد من تحسين الموارد بـأما الجزء الذي لن يستفيد منه فهو بالتالي. ثم:
إن تنفيذ الجزء الذي يستفيد من تحسين الموارد هو الذي يتسارع بفعل هذا العاملبعد تحسين الموارد. ونتيجة لذلك، يبقى وقت تنفيذ الجزء الذي لا يستفيد من ذلك كما هو، بينما يصبح وقت تنفيذ الجزء الذي يستفيد منه كما يلي:
الوقت النظري للتنفيذثم يصبح مجمل المهمة بعد تحسين الموارد كما يلي:
ينص قانون أمدال على التسارع النظري في زمن استجابة تنفيذ المهمة بأكملها عند ثبات حجم العمل، مما ينتج عنه
البرامج المتوازية
إذا كان 30% من وقت التنفيذ قابلاً للتحسين، فإن قيمة p ستكون 0.3؛ وإذا جعل التحسين الجزء المتأثر أسرع بمرتين، فإن قيمة s ستكون 2. ينص قانون أمدال على أن التسريع الإجمالي لتطبيق التحسين سيكون:
على سبيل المثال، لنفترض أن لدينا مهمة متسلسلة مقسمة إلى أربعة أجزاء متتالية، بنسب زمنية للتنفيذ هي p1 = 0.11 ، وp2 = 0.18 ، و p3 = 0.23 ، و p4 = 0.48 على التوالي. علمنا أن الجزء الأول لم يتم تسريعه، أي s1 = 1 ، بينما تم تسريع الجزء الثاني 5 مرات، أي s2 = 5 ، وتم تسريع الجزء الثالث 20 مرة، أي s3 = 20 ، وتم تسريع الجزء الرابع 1.6 مرة، أي s4 = 1.6 . باستخدام قانون أمدال، يكون التسريع الإجمالي هو
لاحظ كيف أن التسريع بمقدار 5 مرات و 20 مرة في الجزأين الثاني والثالث على التوالي ليس له تأثير كبير على التسريع الإجمالي عندما يتم تسريع الجزء الرابع (48٪ من وقت التنفيذ) بمقدار 1.6 مرة فقط.
البرامج المتسلسلة

على سبيل المثال، مع برنامج تسلسلي مكون من جزأين A و B حيث T A = 3 ثوانٍ و T B = 1 ثانية ،
- إذا تم تشغيل الجزء B بسرعة أكبر بخمس مرات، أي s = 5 و p = T B /( T A + T B ) = 0.25 ، فإن
- إذا تم تشغيل الجزء أ بسرعة مضاعفة، أي s = 2 و p = T A /( T A + T B ) = 0.75 ، فإن
لذا، فإن جعل الجزء (أ) يعمل بسرعة مضاعفة أفضل من جعل الجزء (ب) يعمل بسرعة مضاعفة خمس مرات. ويمكن حساب النسبة المئوية للتحسن في السرعة على النحو التالي:
- سيؤدي تحسين الجزء أ بمعامل 2 إلى زيادة سرعة البرنامج الإجمالية بمعامل 1.60، مما يجعله أسرع بنسبة 37.5٪ من الحساب الأصلي.
- ومع ذلك، فإن تحسين الجزء ب بمقدار 5 أضعاف، والذي من المفترض أن يتطلب المزيد من الجهد، سيحقق عامل تسريع إجمالي قدره 1.25 فقط، مما يجعله أسرع بنسبة 20٪.
تحسين الجزء التسلسلي من البرامج المتوازية
إذا تم تحسين الجزء غير القابل للتوازي بمعامل من، ثم
يستنتج من قانون أمدال أن التسارع الناتج عن التوازي يُعطى بالصيغة التالية:
متىلدينا، مما يعني أن التسارع يتم قياسه بالنسبة لوقت التنفيذ بعد تحسين الجزء غير القابل للتوازي.
متى ،
لو ،و، ثم:
تحويل الأجزاء المتسلسلة من البرامج المتوازية إلى أجزاء قابلة للتوازي
بعد ذلك، سننظر في الحالة التي يتم فيها تقليل الجزء غير القابل للتوازي بمعامل قدرهوبالتالي، يزداد الجزء القابل للتوازي تبعاً لذلك.
يستنتج من قانون أمدال أن التسارع الناتج عن التوازي يُعطى بالصيغة التالية:
العلاقة بقانون تناقص الغلة
كثيرًا ما يُخلط بين قانون أمدال وقانون تناقص العوائد ، مع أن تطبيق قانون أمدال يُظهر قانون تناقص العوائد في حالة خاصة فقط. فإذا تم اختيار العناصر المراد تحسينها على النحو الأمثل (من حيث زيادة السرعة المُحققة)، فسيُلاحظ تناقص مُطرد في التحسينات مع كل تحسين. أما إذا تم اختيار العناصر بشكل غير أمثل، فبعد تحسين عنصر دون المستوى الأمثل، ثم الانتقال إلى تحسين عنصر أكثر كفاءة، يُمكن ملاحظة زيادة في العائد. تجدر الإشارة إلى أنه من المنطقي غالبًا تحسين النظام بترتيب "غير أمثل" في هذا السياق، نظرًا لأن بعض التحسينات أصعب أو تتطلب وقتًا أطول للتطوير من غيرها.
يمثل قانون أمدال قانون تناقص الغلة عند النظر في العائد الناتج عن إضافة المزيد من المعالجات إلى جهاز ما، في حال تشغيل عملية حسابية ثابتة الحجم تستخدم جميع المعالجات المتاحة بكامل طاقتها. كل معالج جديد يُضاف إلى النظام يُضيف طاقة قابلة للاستخدام أقل من سابقه. ومع كل مضاعفة لعدد المعالجات، تتناقص نسبة التسريع، حيث يقترب إجمالي الإنتاجية من الحد الأقصى 1/(1 − p ).
يتجاهل هذا التحليل اختناقات محتملة أخرى مثل عرض نطاق الذاكرة وعرض نطاق الإدخال/الإخراج. إذا لم تتناسب هذه الموارد مع عدد المعالجات، فإن مجرد إضافة معالجات سيؤدي إلى عوائد أقل.
من نتائج قانون أمدال أنه لتسريع التطبيقات العملية التي تتضمن أجزاءً متسلسلة ومتوازية، يلزم استخدام تقنيات الحوسبة غير المتجانسة . [ 5 ] توجد نماذج جديدة لتسريع الأداء واستهلاك الطاقة، تستند إلى تمثيل أكثر عمومية لعدم التجانس، يُشار إليه باسم عدم التجانس في الشكل الطبيعي، وهي تدعم نطاقًا واسعًا من بنى المعالجات متعددة النوى غير المتجانسة. تهدف أساليب النمذجة هذه إلى التنبؤ بكفاءة استهلاك الطاقة ونطاقات الأداء للنظام، وتُسهّل البحث والتطوير على مستوى الأجهزة وبرمجيات النظام. [ 6 ] [ 7 ]
انظر أيضاً
مراجع
- ↑ رودجرز، ديفيد ب. (يونيو 1985). "تحسينات في تصميم أنظمة المعالجات المتعددة". أخبار هندسة الحاسوب الصادرة عن جمعية آلات الحوسبة (ACM) SIGARCH . 13 (3). نيويورك، نيويورك، الولايات المتحدة الأمريكية: ACM : 225-231 [ص 226]. doi : 10.1145/327070.327215 . ISBN 0-8186-0634-7ISSN 0163-5964 . S2CID 7083878 .
- ↑ ريدي، مارتن (2011). تصميم واجهات برمجة التطبيقات للغة C++ . بيرلينجتون، ماساتشوستس : دار مورغان كوفمان للنشر . ص 210. doi : 10.1016/C2010-0-65832-9 . ISBN 978-0-12-385003-4. LCCN 2010039601 . OCLC 666246330 .
- ↑ هندسة الحاسوب: منهج كمي . مورغان كوفمان. 2003. ISBN 978-8178672663.
- 1 2 باكوس، جيسون د. (2016-01-01)، "الفصل 2 - تحسين متعدد النوى ومستوى البيانات: OpenMP وSIMD" ، في باكوس، جيسون د. (محرر)، الأنظمة المدمجة ، بوسطن: مورغان كوفمان، ص 49-103 ، doi : 10.1016/b978-0-12-800342-8.00002-x ، ISBN 978-0-12-800342-8تم الاطلاع عليه بتاريخ 18 نوفمبر 2024
- ↑ هيل، مارك د.؛ مارتي، مايكل ر. (2008). "قانون أمدال في عصر المعالجات متعددة النوى". مجلة الكمبيوتر . 41 (7): 33-38 . رمز Bibcode : 2008Compr..41g..33H . CiteSeerX 10.1.1.221.8635 . doi : 10.1109/MC.2008.209 .
- ↑ رافيف، آشور؛ الحياني، محمد أ.ن؛ شيا، فاي؛ شفيق، رشاد؛ رومانوفسكي، ألكسندر؛ ياكوفليف، أليكس (2018-07-01). "نماذج تسريع وتوسيع نطاق الطاقة لأنظمة متعددة النوى غير متجانسة". معاملات IEEE لأنظمة الحوسبة متعددة المقاييس . 4 (3): 436-449 . doi : 10.1109/TMSCS.2018.2791531 . ISSN 2332-7766 . S2CID 52287374 .
- ↑ الحياني، محمد أ. نعمان؛ شيا، فاي؛ رافيف، آشور؛ رومانوفسكي، ألكسندر؛ شفيق، رشاد؛ ياكوفليف، أليكس (يوليو 2020). "قانون أمدال في سياق الأنظمة متعددة النوى غير المتجانسة - دراسة استقصائية" . مجلة IET للحاسبات والتقنيات الرقمية . 14 (4): 133-148 . doi : 10.1049/iet-cdt.2018.5220 . ISSN 1751-8601 . S2CID 214415079 .
للمزيد من القراءة
- أمدال، جين م. (1967). "صحة منهج المعالج الواحد لتحقيق قدرات حوسبة واسعة النطاق" (ملف PDF) . وقائع المؤتمر المشترك للحوسبة الربيعي المنعقد في الفترة من 18 إلى 20 أبريل 1967 - AFIPS '67 (ربيع) . الصفحات 483-485 . doi : 10.1145/1465482.1465560 . S2CID 195607370 .
روابط خارجية
- جين إم. أمدال (1989)، مقابلة تاريخية شفهية مع جين إم. أمدال ، معهد تشارلز باباج ، جامعة مينيسوتا، hdl : 11299/104341يتحدث أمدال عن دراساته العليا في جامعة ويسكونسن وتصميمه لجهاز WISC . كما يتحدث عن دوره في تصميم العديد من أجهزة الكمبيوتر لشركة IBM، بما في ذلك STRETCH و IBM 701 و IBM 704. ويناقش عمله مع ناثانيال روتشستر وإدارة IBM لعملية التصميم. ويشير إلى عمله مع شركات رامو-وولدريدج ، وإيرونوترونيك ، وعلوم الكمبيوتر.
- "قانون أمدال" بقلم جويل ف. كلاين، مشروع عروض وولفرام (2007)
- قانون أمدال في عصر المعالجات متعددة النوى (يوليو 2008)
- تحليل الخوارزميات المتوازية
- بيانات بنية الحاسوب
