بنچمارک کردن چندپردازنده‌ها و مدل‌سازی کارایی موازی

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

سنجش بهره کاراییبنچمارک‌های موازیمدل‌سازی مقیاس‌پذیری

~3 دقیقه مطالعه · آخرین به‌روزرسانی ۱۵ شهریور ۱۴۰۵

چرا سیستم‌های موازی به بنچمارک‌های متفاوت نیاز دارند

بنچمارک‌های کارایی تک‌هسته‌ای که پیش‌تر در این مجموعه بحث شد، که زمان اجرا روی یک پردازنده که یک برنامه را اجرا می‌کند سنجیده می‌شود، چیزی که بیشترین اهمیت را برای یک سیستم موازی دارد را نمی‌سنجند: اینکه کارایی چقدر مؤثر با افزودن واحدهای پردازشی بیشتر بهبود می‌یابد. بنچمارک موازی نیازمند سنجش مستقیم این رفتار مقیاس‌پذیری است.

سنجش بهره کارایی

بنیادین‌ترین سنجه کارایی موازی Speedup است، که به‌عنوان نسبت بین زمان اجرا با استفاده از یک پردازنده و زمان اجرا با استفاده از چند پردازنده تعریف می‌شود.

Speedup = زمان اجرا (1 پردازنده) /
          زمان اجرا (N پردازنده)

یک بهره کارایی ایده‌آل دقیقاً N هنگام استفاده از N پردازنده Linear Speedup نامیده می‌شود، که مقیاس‌پذیری کامل را نشان می‌دهد. در عمل، بهره کارایی واقعی تقریباً همیشه تا حدی کمتر از خطی است، به‌دلیل بخش‌های پی‌درپی یک برنامه و سربار ارتباطی که پیش‌تر در این مجموعه درباره قانون آمدال بحث شد.

Strong Scaling در مقابل Weak Scaling

دو پرسش مرتبط اما متمایز معمولاً هنگام ارزیابی مقیاس‌پذیری موازی پرسیده می‌شوند.

  • Strong Scaling می‌پرسد زمان اجرا برای یک اندازه مسئله ثابت با افزودن پردازنده‌های بیشتر چگونه کاهش می‌یابد — این مستقیماً محاسبه بهره کارایی بالا را منعکس می‌کند.
  • Weak Scaling می‌پرسد زمان اجرا وقتی هم اندازه مسئله و هم تعداد پردازنده‌ها با هم به‌طور متناسب رشد می‌کنند چگونه رفتار می‌کند، و مقدار کار به‌ازای هر پردازنده را ثابت نگه می‌دارد — این اغلب نماینده‌تری از این است که بارهای کاری علمی و پردازش داده در مقیاس بزرگ واقعاً چگونه با گذر زمان رشد می‌کنند.

مجموعه‌بنچمارک‌های رایج چندپردازنده‌ای

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

بازبینی قانون آمدال با سنجش واقعی

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

بهره کارایی نظری قانون آمدال: فقط سقف بالایی

بهره کارایی واقعی سنجیده‌شده همچنین تحت‌تأثیر:
- سربار ارتباط و همگام‌سازی
- توزیع ناهموار کار در سراسر پردازنده‌ها
- رقابت حافظه بین هسته‌ها

چرا مدل‌سازی کارایی مبتنی بر بنچمارک اهمیت دارد

تکیه صرف بر مدل‌های نظری مانند قانون آمدال بدون سنجش بنچمارک واقعی می‌تواند تصویری بیش‌ازحد خوش‌بینانه از کارایی موازی قابل‌دستیابی تولید کند. ترکیب درک نظری با بنچمارک‌های واقعاً سنجیده‌شده روی بارهای کاری نماینده، تصویری بسیار دقیق‌تر و عملی‌تر از اینکه یک سیستم موازی خاص در عمل چگونه عمل خواهد کرد ارائه می‌دهد، و مستقیماً تصمیمات درباره اینکه واقعاً چند پردازنده ارزش افزودن به یک سیستم مشخص را دارد را آگاه می‌کند.

نوشته و پژوهش‌شده توسط دکتر شاهین صیامی

مقالات مرتبط

تصورات غلط رایج درباره محاسبات موازی و درس‌های نهایی کتاب

پس از پوشش هر چیزی از موازی‌سازی سطح رشته تا محاسبات در مقیاس انبار، ارزش دارد تصورات غلط پایداری درباره سیستم‌های موازی که حتی مهندسان باتجربه هم گاهی به آن‌ها دارند را اصلاح کنیم. این مقاله به مغالطات رایج درباره مقیاس‌پذیری و سخت‌افزار موازی می‌پردازد، سپس فصل پردازش موازی را با پیوند دادن مسیر کامل از یک دستور منفرد تا یک ساختمان پر از ماشین‌های همکار به پایان می‌رساند.

ادامه

واقعیت‌های عملی: بنچمارک CPU در مقابل GPU و ضرب ماتریس چندپردازنده‌ای

مقایسه منصفانه یک CPU و یک GPU نیازمند مدلی است که هم توان عملیاتی محاسباتی و هم محدودیت‌های پهنای باند حافظه را با هم در نظر بگیرد. این مقاله مدل roofline مورد استفاده برای مقایسه سخت‌افزار واقعی مانند Intel Core i7 و NVIDIA Tesla GPU را معرفی می‌کند، سپس نشان می‌دهد ضرب ماتریس چگونه در سراسر چند پردازنده تسریع می‌شود، به‌عنوان کاربرد عملی نهایی مفاهیم موازی این فصل.

ادامه

شبکه‌سازی کلاستر: ارتباط با دنیای بیرون

یک کلاستر از ماشین‌ها فقط زمانی مفید است که بتواند به‌طور کارآمد هم داخلی و هم با دنیای بیرون ارتباط برقرار کند. این مقاله لایه‌های شبکه‌سازی درگیر در ارتباط کلاستر، مبادلات بین تأخیر و پهنای باند در مقیاس، و اینکه کلاسترها چگونه به شبکه‌های خارجی و کاربران متصل می‌شوند را پوشش می‌دهد.

ادامه

کلاسترها، کامپیوترهای در مقیاس انبار، و توپولوژی‌های شبکه

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

ادامه

مقدمه‌ای بر GPU: موازی‌سازی عظیم برای بارهای کاری سنگین از نظر داده

یک GPU ایده SIMD که پیش‌تر در این مجموعه پوشش داده شد را به یک مقیاس افراطی می‌برد، و هزاران رشته سبک را به‌طور هم‌زمان اجرا می‌کند تا حجم عظیمی از داده مستقل را پردازش کند. این مقاله توضیح می‌دهد چرا GPU ها از نظر معماری این‌قدر با CPU متفاوت‌اند، مدل اجرای رشته آن‌ها چگونه کار می‌کند، و چه نوع بارهای کاری بیشترین بهره را از این طراحی می‌برند.

ادامه

چندپردازنده‌های حافظه مشترک: تراشه‌های چندهسته‌ای واقعاً چگونه همکاری می‌کنند

پردازنده‌های چندهسته‌ای رایج‌ترین شکل سخت‌افزار موازی امروزی هستند، اما نحوه اشتراک‌گذاری واقعی حافظه توسط هسته‌هایشان به شیوه‌های مهمی متفاوت است. این مقاله مدل چندپردازنده حافظه مشترک را توضیح می‌دهد، طرح‌های دسترسی یکنواخت و غیریکنواخت به حافظه را مقایسه می‌کند، و توضیح می‌دهد سیستم‌عامل و برنامه‌نویس چگونه کار را در سراسر هسته‌ها هماهنگ می‌کنند.

ادامه