سؤال

في الحوسبة المتوازية، يُستخدم قانون أمدال بشكل أساسي للتنبؤ بالسرعة القصوى النظرية لمعالجة البرامج باستخدام معالجات متعددة.إذا أشرنا إلى السرعة بـ S فإن قانون أمدال يُعطى بالصيغة:

ق=1/((1-ف)+(ف/ن)

أين ص هي نسبة النظام أو البرنامج التي يمكن جعلها متوازية 1-ص هي النسبة التي تبقى مسلسلة.سؤالي هو:كيف يمكننا حساب أو تقدير ص لبرنامج معين؟

وبشكل أكثر تحديدًا، سؤالي يتكون من جزأين:

كيف يمكننا حساب ص نظريا؟كيف يمكننا حساب ص في التمرين؟

مرجع: https://www.techopedia.com/definition/17035/amdahls-law

هل كانت مفيدة؟

المحلول

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

بعد لمحة مختصرة عن قانون أمدال، أجيب على سؤال كيفية قياس الأجزاء التسلسلية (1-P) والمتوازية (P) لبرنامج ما.

  1. الأجهزة الثابتة:ضع وظيفة تعطي الوقت الحالي مثل gettimeofday في Linux في بداية البرنامج، النقطة التي تقوم فيها بإنشاء سلاسل الرسائل والنقاط التي تنضم فيها سلاسل الرسائل وإذا لزم الأمر (إذا كان برنامجك يقوم بالكثير من المعالجة اللاحقة) في نهاية البرنامج .خذ الاختلافات وسيكون لديك قيمة P.استخدم البرنامج ذو الخيوط الواحدة.إذا كنت ترغب في الحصول على مزيد من الدقة في القياس، فاستخدم تعليمات rdtscp الموجودة على معالجات Intel مدونة ممتازة للدكتور.جون ماكالبين.
  2. الأجهزة الديناميكية:من الممكن القيام بما ورد أعلاه حتى عندما لا يكون لديك الكود المصدري لإجراء الأجهزة الثابتة.يمكنك استخدام التحميل المسبق للمكتبة (LD_PRELOAD) أو أداة Intel Pin مقدمة إلى Pin باستخدام الأمثلة أو أدوات القياس الثنائية الديناميكية المشابهة مثل Dynamorio وValgrind وLinux perf البرنامج التعليمي بريندان جريج.جميعها عبارة عن أطر عمل ثابتة، مجانية تمامًا، مع أدوات بحث متعددة تستخدمها.
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى cs.stackexchange
scroll top