قانون أمدال

في هندسة الحاسوب ، قانون أمدال (أو حجة أمدال [ 1 ] ) هو صيغة تحد من تسريع المهمة عند إضافة موارد إلى النظام الذي ينفذ تلك المهمة.
يمكن صياغة القانون على النحو التالي :
إن التحسن العام في الأداء الذي يتم تحقيقه من خلال تحسين جزء واحد من النظام محدود بنسبة الوقت الذي يتم فيه استخدام الجزء المحسن فعليًا. [ 2 ]
وقد سميت على اسم عالم الكمبيوتر جين أمدال ، وتم تقديمها في المؤتمر المشترك الربيعي للحاسوب التابع للاتحاد الأمريكي لجمعيات معالجة المعلومات (AFIPS) في عام 1967.
يُستخدم قانون أمدال غالبًا في الحوسبة المتوازية للتنبؤ بالتسارع النظري عند استخدام معالجات متعددة.
تعريف
في سياق قانون أمدال، يمكن تعريف التسريع على النحو التالي: [ 3 ]
أو
يمكن صياغة قانون أمدال بالطريقة التالية: [ 4 ]
أين
- يمثل إجمالي تسريع البرنامج
- يمثل هذا النسبة المئوية للوقت الذي يقضيه المستخدم في جزء الكود الذي يتم فيه إجراء التحسينات
- يمثل مدى التحسن
الغالباً ما يكون وقت التنفيذ أقل بكثير مما قد يتوقعه المرء. على سبيل المثال، إذا قام مبرمج بتحسين جزء من الكود الذي يمثل 10% من إجمالي وقت التنفيذ (أي(0.10) ويحقق من أصل 10000، ثم يصبح 1.11، مما يعني تحسنًا بنسبة 11% فقط في سرعة البرنامج الإجمالية. لذا، على الرغم من التحسن الكبير في قسم واحد، فإن الفائدة الإجمالية ضئيلة للغاية. في مثال آخر، إذا قام المبرمج بتحسين قسم يمثل 99% من وقت التنفيذ (أي(0.99) مع عامل تسريع قدره 100 (أيمن أصل 100)، الـلا تتجاوز النسبة 50. وهذا يشير إلى أن نصف الزيادة المحتملة في الأداء (سيصل إلى 100 إذا تم تغطية 100% من وقت التنفيذ) ويُفقد بسبب نسبة الـ 1% المتبقية من وقت التنفيذ التي لم يتم تحسينها. [ 4 ]
الاشتقاق
A task executed by a system whose resources are improved compared to an initial similar system can be split up into two parts:
- a part that does not benefit from the improvement of the resources of the system;
- a part that benefits from the improvement of the resources of the system.
An example is a computer program that processes files. A part of that program may scan the directory of the disk and create a list of files internally in memory. After that, another part of the program passes each file to a separate thread for processing. The part that scans the directory and creates the file list cannot be sped up on a parallel computer, but the part that processes the files can.
The execution time of the whole task before the improvement of the resources of the system is denoted as . It includes the execution time of the part that would not benefit from the improvement of the resources and the execution time of the one that would benefit from it. The fraction of the execution time of the task that would benefit from the improvement of the resources is denoted by . The one concerning the part that would not benefit from it is therefore . Then:
It is the execution of the part that benefits from the improvement of the resources that is accelerated by the factor after the improvement of the resources. Consequently, the execution time of the part that does not benefit from it remains the same, while the part that benefits from it becomes:
The theoretical execution time of the whole task after the improvement of the resources is then:
Amdahl's law gives the theoretical speedup in latency of the execution of the whole task at fixed workload , which yields
Parallel programs
If 30% of the execution time may be the subject of a speedup, p will be 0.3; if the improvement makes the affected part twice as fast, s will be 2. Amdahl's law states that the overall speedup of applying the improvement will be:
For example, assume that we are given a serial task which is split into four consecutive parts, whose percentages of execution time are p1 = 0.11, p2 = 0.18, p3 = 0.23, and p4 = 0.48 respectively. Then we are told that the 1st part is not sped up, so s1 = 1, while the 2nd part is sped up 5 times, so s2 = 5, the 3rd part is sped up 20 times, so s3 = 20, and the 4th part is sped up 1.6 times, so s4 = 1.6. By using Amdahl's law, the overall speedup is
لاحظ كيف أن التسريع بمقدار 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)
- تحليل الخوارزميات المتوازية
- بيانات بنية الحاسوب
