تسريع

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

التعريفات

يمكن تعريف تسريع الأداء لنوعين مختلفين من الكميات: زمن الاستجابة والإنتاجية . [ 1 ]

زمن استجابة بنية معينة هو مقلوب سرعة تنفيذ المهمة:

ل=1v=تيدبليو،{\displaystyle L={\frac {1}{v}}={\frac {T}{W}},}

أين

  • v هي سرعة تنفيذ المهمة؛
  • T هو وقت تنفيذ المهمة؛
  • يمثل W عبء تنفيذ المهمة.

معدل نقل البيانات في بنية معينة هو معدل تنفيذ مهمة ما:

سؤال=ρvأ=ρأدبليوتي=ρأل،{\displaystyle Q=\rho vA={\frac {\rho AW}{T}}={\frac {\rho A}{L}},}

أين

يُقاس زمن الاستجابة عادةً بالثواني لكل وحدة من عبء التنفيذ. أما معدل النقل فيُقاس عادةً بوحدات عبء التنفيذ في الثانية. ومن وحدات معدل النقل الأخرى التعليمات لكل دورة (IPC)، ومقلوبها، الدورات لكل تعليمة (CPI)، وهي وحدة أخرى من وحدات زمن الاستجابة.

إن تسريع الأداء لا أبعاد له ويتم تعريفه بشكل مختلف لكل نوع من أنواع الكميات بحيث يكون مقياسًا متسقًا.

تحسين سرعة زمن الاستجابة

يتم تعريف تسريع زمن الاستجابة بالصيغة التالية: [ 2 ]

Sكمون=ل1ل2=تي1دبليو2تي2دبليو1،{\displaystyle S_{\text{latency}}={\frac {L_{1}}{L_{2}}}={\frac {T_{1}W_{2}}{T_{2}W_{1}}},}

أين

  • زمن الاستجابة S هو تسارع زمن الاستجابة للبنية 2 بالنسبة للبنية 1؛
  • L 1 هو زمن استجابة البنية 1؛
  • L2 هو زمن استجابة البنية 2 .

يمكن التنبؤ بتسريع زمن الاستجابة من خلال قانون أمدال أو قانون جوستافسون .

زيادة في الإنتاجية

يتم تعريف زيادة الإنتاجية بالصيغة التالية: [ 3 ]

Sمعدل نقل البيانات=سؤال2سؤال1=ρ2أ2تي1دبليو2ρ1أ1تي2دبليو1=ρ2أ2ρ1أ1Sكمون،{\displaystyle S_{\text{throughput}}={\frac {Q_{2}}{Q_{1}}}={\frac {\rho _{2}A_{2}T_{1}W_{2}}{\rho _{1}A_{1}T_{2}W_{1}}}={\frac {\rho _{2}A_{2}}{\rho _{1}A_{1}}}S_{\text{latency}},}

أين

  • معدل النقل S هو زيادة معدل النقل في البنية 2 مقارنة بالبنية 1؛
  • يمثل Q 1 معدل نقل البيانات للبنية 1؛
  • يمثل Q 2 معدل نقل البيانات للبنية 2.

أمثلة

استخدام أوقات التنفيذ

نختبر فعالية مُتنبئ التفرعات في تنفيذ برنامج. أولًا، نُنفذ البرنامج باستخدام مُتنبئ التفرعات القياسي على المعالج، ما ينتج عنه زمن تنفيذ قدره 6.75 ثانية. ثانيًا، نُنفذ البرنامج باستخدام مُتنبئ التفرعات المُعدَّل (والذي نأمل أن يكون مُحسَّنًا) على نفس المعالج، ما ينتج عنه زمن تنفيذ قدره 4.50 ثانية. في كلتا الحالتين، يكون عبء التنفيذ متساويًا. باستخدام معادلة تسريع الأداء، نعلم

Sكمون=لقديملجديد=6.75 s4.50 s=1.5.{\displaystyle S_{\text{latency}}={\frac {L_{\text{old}}}{L_{\text{new}}}}={\frac {6.75~\mathrm {s} }{4.50~\mathrm {s} }}=1.5.}

لقد حقق نظام التنبؤ بالفروع الجديد لدينا سرعة أكبر بمقدار 1.5 مرة مقارنة بالنظام الأصلي.

استخدام الدورات لكل تعليمة والتعليمات لكل دورة

يمكننا أيضًا قياس التسريع بوحدات دورات لكل تعليمة (CPI)، وهي وحدة قياس زمن الاستجابة. أولًا، ننفذ البرنامج باستخدام مُتنبئ التفرع القياسي، ما ينتج عنه CPI يساوي 3. ثانيًا، ننفذ البرنامج باستخدام مُتنبئ التفرع المُعدَّل، ما ينتج عنه CPI يساوي 2. في كلتا الحالتين، يكون عبء التنفيذ متماثلًا، وكلا البنيتين ليستا متوازيتين ولا تعتمدان على تقنية خطوط الأنابيب. باستخدام معادلة التسريع، نحصل على

Sكمون=لقديملجديد=3 مؤشر أسعار المستهلك2 مؤشر أسعار المستهلك=1.5.{\displaystyle S_{\text{latency}}={\frac {L_{\text{old}}}{L_{\text{new}}}}={\frac {3~{\text{CPI}}}{2~{\text{CPI}}}}=1.5.}

يمكننا أيضًا قياس تسارع الأداء بوحدة التعليمات لكل دورة ( IPC )، وهو معدل نقل البيانات ومعكوس وحدة دورات لكل تعليمة (CPI). باستخدام معادلة تسارع الأداء، نحصل على:

Sمعدل نقل البيانات=سؤالجديدسؤالقديم=0.5 IPC0.33 IPC=1.5.{\displaystyle S_{\text{throughput}}={\frac {Q_{\text{new}}}{Q_{\text{old}}}}={\frac {0.5~{\text{IPC}}}{0.33~{\text{IPC}}}}=1.5.}

لقد حققنا نفس التسارع بمقدار 1.5 مرة، على الرغم من أننا قمنا بقياس كميات مختلفة.

تفاصيل إضافية

لنفترض أن S تمثل تسارع تنفيذ مهمة ما، و s تمثل تسارع تنفيذ الجزء من المهمة الذي يستفيد من تحسين موارد البنية. يتحقق التسارع الخطي ، أو التسارع المثالي، عندما يكون S = s . عند تشغيل مهمة بتسارع خطي، فإن مضاعفة التسارع المحلي تُضاعف التسارع الكلي. ولأن هذا مثالي، يُعتبر قابلية توسع ممتازة .

الكفاءة هي مقياس لاستخدام موارد النظام المُحسَّن، وتُعرَّف على النحو التالي:

η=Ss.{\displaystyle \eta ={\frac {S}{s}}.}

تتراوح قيمتها عادةً بين 0 و 1. تتمتع البرامج ذات التسارع الخطي والبرامج التي تعمل على معالج واحد بكفاءة تساوي 1، في حين أن العديد من البرامج التي يصعب موازاتها تتمتع بكفاءة مثل 1/ln( s ) التي تقترب من 0 مع زيادة عدد المعالجات A = s .

في السياقات الهندسية، تُستخدم منحنيات الكفاءة في الرسوم البيانية أكثر من منحنيات التسريع، لأن

  • كل المساحة في الرسم البياني مفيدة (بينما في منحنيات التسريع يتم إهدار نصف المساحة)؛
  • من السهل ملاحظة مدى نجاح تحسين النظام؛
  • لا حاجة لرسم منحنى "التسارع المثالي".

في سياقات التسويق، تُستخدم منحنيات التسارع في أغلب الأحيان، ويرجع ذلك إلى حد كبير إلى أنها تتجه للأعلى ولليمين، وبالتالي تبدو أفضل لمن هم أقل اطلاعاً.

تسريع فائق الخطية

أحيانًا، يُلاحظ تسارع يتجاوز A عند استخدام A معالجات في الحوسبة المتوازية ، ويُسمى هذا التسارع بالتسارع فوق الخطي . نادرًا ما يحدث التسارع فوق الخطي، وغالبًا ما يُربك المبتدئين الذين يعتقدون أن أقصى تسارع نظري يجب أن يكون A عند استخدام A معالجات.

أحد الأسباب المحتملة للتسارع الفائق في العمليات الحسابية منخفضة المستوى هو تأثير الذاكرة المؤقتة الناتج عن اختلاف هياكل الذاكرة في الحواسيب الحديثة: ففي الحوسبة المتوازية، لا يتغير عدد المعالجات فحسب، بل يتغير أيضًا حجم الذاكرة المؤقتة المتراكمة من مختلف المعالجات. ومع زيادة حجم الذاكرة المؤقتة المتراكمة، يمكن استيعاب جزء أكبر أو حتى كل مجموعة العمل في الذاكرة المؤقتة، مما يقلل زمن الوصول إلى الذاكرة بشكل كبير، وهو ما يُسبب تسارعًا إضافيًا إلى جانب التسارع الناتج عن العملية الحسابية الفعلية. [ 4 ]

يحدث وضع مماثل عند البحث في مجموعات بيانات ضخمة، مثل البيانات الجينومية التي تبحث فيها تطبيقات BLAST . في هذه الحالة، تُمكّن ذاكرة الوصول العشوائي المتراكمة من كل عقدة في المجموعة من نقل مجموعة البيانات من القرص إلى ذاكرة الوصول العشوائي، مما يقلل بشكل كبير من الوقت اللازم، على سبيل المثال، لبرنامج mpiBLAST للبحث فيها. [ 5 ]

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

يمكن أن تحدث أيضًا تسارعات فائقة الخطية في التطبيقات المتوازية للتفرع والتقييد من أجل التحسين: [ 7 ] قد تؤثر معالجة عقدة واحدة بواسطة معالج واحد على العمل الذي تحتاج المعالجات الأخرى إلى القيام به للعقد الأخرى.

انظر أيضاً

مراجع

  1. مارتن، ميلو. "الأداء والمقارنة المعيارية" (ملف PDF) . تم الاطلاع عليه بتاريخ 5 يونيو 2014 .
  2. هينيسي، جون ل.؛ ديفيد أ. باترسون (2012). هندسة الحاسوب: منهج كمي . والتهام، ماساتشوستس: مورغان كوفمان . ص 46-47 . ISBN  978-0-12-383872-8.
  3. ↑ باير ، جان لوب (2010). بنية المعالجات الدقيقة: من خطوط الأنابيب البسيطة إلى المعالجات المتعددة على الرقاقة . نيويورك: مطبعة جامعة كامبريدج . ص 10. ISBN  978-0-521-76992-1.
  4. بنزي، جون؛ داموداران، م. (2007). "محاكاة مونت كارلو المباشرة ثلاثية الأبعاد المتوازية لمحاكاة التدفقات الدقيقة" . ديناميكا الموائع الحسابية المتوازية 2007: تطبيقات وتجارب على نطاق واسع والحوسبة الشبكية . ديناميكا الموائع الحسابية المتوازية. سبرينغر. ص 95. تاريخ الاسترجاع: 21 مارس 2013 . 
  5. "المصير الأخضر + mpiBLAST = سحر المعلومات الحيوية" (ملف PDF) . مؤرشف من النسخة الأصلية (ملف PDF) بتاريخ 21-02-2008.
  6. سبيكنماير، إيوالد (1988). "تسريع فائق الخطية للتراجع المتوازي". الحوسبة الفائقة . سلسلة محاضرات في علوم الحاسوب. المجلد 297. الصفحات 985-993 . doi : 10.1007/3-540-18991-2_58 . ISBN   978-3-540-18991-6.
  7. "مقارنة بين معايير Gurobi وCPLEX" . cmu.edu . 29 يناير 2009. تم الاطلاع عليه بتاريخ 23 أبريل 2018 .