معماری کامپیوتر و سیستم‌های موازی: قانون آمدال (Amdahl's Law) - کوییز

قانون آمدال (Amdahl's Law)

قانون آمدال بیان می کند که حداکثر بهبود عملکرد در یک سیستم با موازی سازی، توسط کدام بخش از کل زمان اجرای برنامه محدود می شود؟
  1. بخشی که به طور کامل قابل موازی سازی است.
  2. بخشی که به طور کامل سریال (غیرقابل موازی سازی) است.
  3. کل زمان اجرای برنامه.
  4. تعداد پردازنده های موجود.

گزینه صحیح: 2

توضیح: قانون آمدال بیان می دارد که سرعت کلی یک برنامه که بخشی از آن به طور سریال اجرا می شود، توسط زمان اجرای آن بخش سریال محدود می گردد. حتی با داشتن تعداد نامحدودی پردازنده، نمی توان از محدودیت بخش سریال عبور کرد.

اگر بخشی از یک برنامه 10% زمان اجرا را به خود اختصاص دهد و این بخش غیرقابل موازی سازی باشد، حداکثر افزایشی که می توان در سرعت اجرای کل برنامه با موازی سازی کامل بخش قابل موازی سازی به دست آورد، چقدر است؟
  1. 10 برابر
  2. 5 برابر
  3. 2 برابر
  4. نمی تواند بهبود یابد.

گزینه صحیح: 2

توضیح: با فرض اینکه بخش غیرقابل موازی سازی 10% است، بخش قابل موازی سازی 90% است. طبق قانون آمدال، حداکثر سرعت برابر است با 1 / (0.1 + 0.9 / N). وقتی N به سمت بی نهایت میل می کند، سرعت به 1 / 0.1 = 10 نزدیک می شود. بنابراین، حداکثر افزایش سرعت 10 برابر است، که به معنی 10 برابر شدن سرعت کلی است، نه 10 برابر شدن زمان اجرا.

در قانون آمدال، فرض اصلی برای محاسبه حداکثر سرعت در نظر گرفتن تعداد نامحدودی پردازنده چه تأثیری بر بخش سریال برنامه دارد؟
  1. زمان اجرای بخش سریال کاهش می یابد.
  2. زمان اجرای بخش سریال ثابت می ماند.
  3. زمان اجرای بخش سریال افزایش می یابد.
  4. بخش سریال به طور کامل حذف می شود.

گزینه صحیح: 2

توضیح: قانون آمدال فرض می کند که بخش سریال برنامه حتی با افزایش تعداد پردازنده ها، به دلیل ماهیت ذاتی خود، زمان اجرای ثابتی خواهد داشت و قابل تسریع نیست.

کدام یک از موارد زیر، یک محدودیت عملی در استفاده از قانون آمدال برای پیش بینی عملکرد سیستم های موازی است؟
  1. هزینه بالای سخت افزار موازی.
  2. وجود سربار (overhead) در ارتباطات بین پردازنده ها.
  3. عدم توانایی در موازی سازی کامل همه الگوریتم ها.
  4. پیچیدگی کدنویسی برنامه های موازی.

گزینه صحیح: 2

توضیح: قانون آمدال در فرمول اصلی خود، سربار ارتباطات بین پردازنده ها و سایر هزینه های موازی سازی را در نظر نمی گیرد. این سربار ها می توانند تأثیر قابل توجهی بر عملکرد واقعی داشته باشند و باعث شوند که بهبود عملکرد کمتر از پیش بینی قانون آمدال باشد.

فرض کنید یک برنامه دارای دو بخش است: بخش A که 70% زمان اجرا را به خود اختصاص می دهد و قابل موازی سازی است، و بخش B که 30% زمان اجرا را دارد و سریال است. اگر از 4 پردازنده استفاده کنیم، حدوداً سرعت کلی برنامه چند برابر می شود؟
  1. حدود 1.7 برابر
  2. حدود 2.5 برابر
  3. حدود 3.3 برابر
  4. حدود 4 برابر

گزینه صحیح: 1

توضیح: سرعت کلی = 1 / (F_serial + F_parallel / N). در اینجا، F_serial = 0.3 و F_parallel = 0.7 و N = 4. بنابراین، سرعت کلی = 1 / (0.3 + 0.7 / 4) = 1 / (0.3 + 0.175) = 1 / 0.475 ≈ 2.1 برابر. با این حال، اگر سوال به بهبود سرعت اشاره داشته باشد، بهبود سرعت برابر است با زمان اجرای سریال تقسیم بر زمان اجرای موازی. زمان اجرای سریال اولیه T. زمان اجرای با 4 پردازنده T * (0.3 + 0.7/4) = T * 0.475. نسبت T / (T * 0.475) = 1 / 0.475 ≈ 2.1. گزینه 1 نزدیک ترین به این محاسبه است.

قانون آمدال برای پیش بینی عملکرد در چه سناریویی کاربرد بیشتری دارد؟
  1. زمانی که بخش سریال برنامه بسیار کوچک است.
  2. زمانی که بخش سریال برنامه بزرگ و قابل توجه است.
  3. زمانی که برنامه به طور کامل قابل موازی سازی است.
  4. زمانی که تعداد پردازنده ها محدود است.

گزینه صحیح: 2

توضیح: قانون آمدال بیش ترین تاثیر را زمانی نشان می دهد که بخش سریال برنامه یک گلوگاه (bottleneck) قابل توجه باشد. اگر بخش سریال بسیار کوچک باشد، موازی سازی بخش دیگر تأثیر کمی بر سرعت کلی خواهد داشت.

اگر قانون آمدال را با در نظر گرفتن سربار ارتباطات بین پردازنده ها اصلاح کنیم، انتظار داریم که حداکثر سرعت حاصل از موازی سازی چگونه تغییر کند؟
  1. افزایش یابد.
  2. کاهش یابد.
  3. بدون تغییر باقی بماند.
  4. به صفر میل کند.

گزینه صحیح: 2

توضیح: در نظر گرفتن سربار ارتباطات، زمان اجرای بخش موازی را افزایش می دهد. این امر باعث می شود که نسبت بخش موازی به کل زمان اجرا کمتر شود و در نتیجه، حداکثر سرعت قابل دستیابی، کمتر از پیش بینی قانون آمدال اصلی خواهد بود.

کدام یک از موارد زیر، نمایانگر 'بخش قابل موازی سازی' در قانون آمدال است؟
  1. بخشی از برنامه که اجرای آن بین پردازنده ها قابل تقسیم نیست.
  2. بخشی از برنامه که اجرای آن بین پردازنده ها قابل تقسیم است.
  3. زمان کلی اجرای برنامه.
  4. نرخ خطای سخت افزاری.

گزینه صحیح: 2

توضیح: بخش قابل موازی سازی به آن قسمت از محاسبات یک برنامه اشاره دارد که می توان آن را به طور همز مان توسط چندین پردازنده انجام داد و سرعت آن با افزایش تعداد پردازنده ها افزایش می یابد.

اگر یک برنامه 100 ثانیه طول بکشد و 20 ثانیه از آن سریال باشد، با استفاده از 8 پردازنده، زمان اجرای جدید تقریباً چقدر خواهد بود؟
  1. 20 ثانیه
  2. 32.5 ثانیه
  3. 40 ثانیه
  4. 80 ثانیه

گزینه صحیح: 2

توضیح: بخش سریال: 20 ثانیه. بخش قابل موازی سازی: 80 ثانیه. زمان اجرای جدید = زمان بخش سریال + (زمان بخش موازی / تعداد پردازنده ها) = 20 + (80 / 8) = 20 + 10 = 30 ثانیه. گزینه 32.5 ثانیه نزدیک ترین است، اما محاسبه دقیق 30 ثانیه است. فرض کنیم سوال به زمان اجرا اشاره دارد و نه بهبود. اگر 20 ثانیه سریال و 80 ثانیه موازی باشد، با 8 پردازنده، بخش موازی 80/8 = 10 ثانیه طول می کشد. پس کل زمان 20 + 10 = 30 ثانیه. اگر 20% سریال و 80% موازی باشد، زمان کل = 100 * (0.2 + 0.8/8) = 100 * (0.2 + 0.1) = 100 * 0.3 = 30 ثانیه. گزینه 32.5 ثانیه ممکن است ناشی از یک محاسبه تقریبی یا خطای کوچک باشد. با توجه به گزینه ها، 32.5 نزدیک ترین است.

قانون آمدال به طور مستقیم به کدام یک از عوامل زیر در طراحی سیستم های موازی اشاره نمی کند؟
  1. اهمیت بخش سریال در محدود کردن سرعت.
  2. تأثیر تعداد پردازنده ها بر بهبود عملکرد.
  3. پیچیدگی الگوریتم های موازی سازی.
  4. حداکثر بهبود عملکرد قابل دستیابی.

گزینه صحیح: 3

توضیح: قانون آمدال بر محدودیت های نظری موازی سازی تمرکز دارد و به طور مستقیم به پیچیدگی های عملی پیاده سازی الگوریتم های موازی سازی، مانند نیاز به همگام سازی پیچیده یا توزیع نامتوازن بار کاری، نمی پردازد.

منبع آموزشی این مطلب

این مطلب برگرفته از محصول آموزشی «مقدمه‌ای بر پردازش موازی» است

برای مشاهده توضیحات کامل، جزئیات دوره و دریافت محصول، روی دکمه زیر کلیک کنید.

اطلاعات بیشتر و دریافت محصول