محدودیت اِمدال: چرا سرعت پردازش موازی همیشه در گرو بخشهای متوالی کد است؟
فرمول سال ۱۹۶۷ جین اِمدال ثابت میکند که فارغ از تعداد پردازندههای اضافهشده به یک سیستم، حداکثر افزایش سرعت ممکن، کاملاً تابع آن بخش از کد است که قابلیت موازیسازی ندارد.
به قلم یاسر یوسفی
این خبر را به اشتراک بگذارید
- معماران سختافزار
- تمرکز بر بهینهسازی عملکرد تکرشتهای و شتابدهندههای تخصصی برای کاهش محدودیتهای فیزیکی پردازش متوالی.
- مهندسان نرمافزار
- تأکید بر پروفایل کردن و بازنویسی الگوریتمها برای به حداقل رساندن رقابت بر سر قفلها و افزایش کسر قابل موازیسازی کد.
- محققان پردازش با عملکرد بالا
- استدلال بر این مبنا که مقیاسپذیری ضعیف و افزایش اندازه مسئله، به ابررایانهها اجازه میدهد تا در کاربردهای علمی عملی، از محدودیتهای اِمدال عبور کنند.
دیدگاههایی که این گزارش پوشش نداده
- نظریهپردازان محاسبات کوانتومی
- طراحان کامپایلر
آنچه نمیدانیم
- معماریهای نوظهور محاسبات کوانتومی چگونه کسر متوالی الگوریتمهای سنتی را بازتعریف خواهند کرد.
- نقطه دقیق تقاطعی که در آن هزینه انرژی ناشی از افزودن هستههای بیشتر، از افزایش حاشیهای سرعت در دیتاسنترهای تجاری پیشی میگیرد.
یک کار محاسباتی را تصور کنید که انجام آن روی یک پردازنده دقیقاً ۱۰۰ ساعت زمان میبرد. اگر بتوان ۹۵ ساعت از این زمان را بهطور بینقص میان بینهایت کارگر تقسیم کرد، اما ۵ ساعت باقیمانده شامل مراحلی متوالی باشد که باید یکی پس از دیگری اجرا شوند، مطلقاً کمترین زمان ممکن برای پایان این کار همان ۵ ساعت خواهد بود. حداکثر افزایش سرعت نظری، فارغ از اینکه ده هسته به کار بگیرید یا ده میلیون هسته، روی ۲۰ برابر سرعت اولیه قفل شده است.
این سقف سخت ریاضی یک نقص در سختافزارهای مدرن نیست، بلکه یکی از قوانین بنیادین علوم کامپیوتر است. این اصل که نخستین بار در سال ۱۹۶۷ توسط جین اِمدال، معمار کامپیوتر، در کنفرانس مشترک بهاری فدراسیون انجمنهای پردازش اطلاعات آمریکا (AFIPS) مطرح شد، دیکته میکند که کسر متوالی یک برنامه، شتاب کلی آن را بهطور نامتناسبی محدود میسازد.[1]
استدلال پشت این قانون، شفاف و بیرحمانه است. همانطور که در کتاب «سنجش عملکرد کامپیوتر» تعریف شده، تز اصلی «اساساً این است که بهبود عملکرد کلی مشاهدهشده در یک برنامه کاربردی، توسط آن بخش از برنامه که از تغییرات اعمالشده بر سیستم تأثیر نمیپذیرد، محدود میشود.»[5]
در ادبیات ریاضی، این موضوع بهعنوان یک محدودیت مشخص بر افزایش سرعت تأخیر بیان میشود. این فرمول حکم میکند که افزایش سرعت برابر است با عدد یک، تقسیم بر مجموع کسر متوالی و کسر موازی تقسیم بر تعداد پردازندهها. در اینجا، کسر موازی نشاندهنده نسبتی از زمان اجراست که میتوان آن را توزیع کرد، کسر متوالی همان نسبت کاملاً خطی است، و مخرج کسر نیز مقیاس سختافزار را در نظر میگیرد.[2]
برای مشاهده این محدودیت در عمل، نرمافزاری را در نظر بگیرید که ۹۰ درصد کد آن میتواند بهصورت موازی اجرا شود و ۱۰ درصد آن متوالی است. اگر یک تیم مهندسی سرور خود را از یک ماشین تکهستهای به یک ماشین ۱۰ هستهای ارتقا دهد، این فرمول افزایش سرعتی معادل ۵.۲۶ برابر را به ما نشان میدهد.[2][4]
حال اگر همین تیم تصمیم بگیرد هزینه هنگفتی برای یک کلاستر ابررایانه ۱۰۰۰ هستهای بپردازد تا دقیقاً همان بار کاری را اجرا کند، ریاضیات یک سیلی محکم از واقعیت به آنها میزند. افزایش سرعت تنها به ۹.۹۱ برابر میرسد. آن ۹۹۰ پردازنده اضافی تقریباً هیچ بازده نهایی به همراه نداشتند، زیرا اکنون همان گلوگاه ۱۰ درصدی متوالی است که بر زمان اجرا مسلط شده است.[3][8]
این حد مجانبی بهخوبی توضیح میدهد که چرا فشار بیامان صنعت فناوری به سمت پردازندههای چندهستهای — و عرضه تراشههای مصرفی با ۱۶، ۲۴ یا حتی ۶۴ هسته — اغلب نمیتواند به افزایش عملکرد متناسب در نرمافزارهای روزمره دسکتاپ ترجمه شود.[7]
یک تحلیل در سال ۲۰۲۳ تأکید میکند که اگرچه معماریهای پردازش موازی برای پردازش دادههای مدرن ضروری هستند، اما سربار ناشی از هماهنگسازی پردازندههای متعدد — مانند همگامسازی رشتهها و انتقال دادهها — در صورتی که کسر موازی بهاندازه کافی بزرگ نباشد، میتواند در عمل باعث افت عملکرد شود.[6]
قویترین استدلال متقابل در برابر این مرز بدبینانه از سوی جان گوستافسون مطرح میشود که در سال ۱۹۸۸ قانون گوستافسون را معرفی کرد. گوستافسون استدلال کرد که فرض ثابت بودن اندازه بار کاری، که با عنوان مقیاسپذیری قوی شناخته میشود، بازتابدهنده نحوه استفاده واقعی انسانها از قدرت محاسباتی عظیم نیست.[3][4]
قویترین استدلال متقابل در برابر این مرز بدبینانه از سوی جان گوستافسون مطرح میشود که در سال ۱۹۸۸ قانون گوستافسون را معرفی کرد.
وقتی محققان به یک ابررایانه بزرگتر دسترسی پیدا میکنند، بهندرت از آن برای حل سریعترِ دقیقاً همان مسئله قبلی استفاده میکنند. در عوض، آنها اندازه مسئله را بزرگتر میکنند؛ مثلاً یک سیستم آبوهوایی وسیعتر را شبیهسازی میکنند، تصویری با وضوح بالاتر رندر میگیرند، یا یک شبکه عصبی پیچیدهتر را آموزش میدهند.[8]
در مدل گوستافسون که به مقیاسپذیری ضعیف معروف است، کسر متوالی ثابت نمیماند. با بزرگتر شدن اندازه کلی مسئله، بخش قابل موازیسازی معمولاً بسیار سریعتر از فازهای متوالی راهاندازی و خاتمه رشد میکند و به سیستم اجازه میدهد تا در مجموعه دادههای عظیم به افزایش سرعت تقریباً خطی دست یابد.[3][7]
با این حال، محدودیت اولیه سال ۱۹۶۷ برای برنامههای حساس به تأخیر که در آنها نمیتوان اندازه مسئله را بهطور دلخواه افزایش داد، همچنان پابرجاست. یک پرسوجوی پایگاه داده که باید در ۵۰ میلیثانیه پاسخ دهد را نمیتوان مقیاسپذیر کرد؛ این پرسوجو صرفاً باید سریعتر اجرا شود.[1][6]
این پویایی، یک واگرایی ساختاری را در طراحی سختافزار تحمیل میکند. از آنجا که عملکرد تکرشتهای همچنان گلوگاه نهایی کدهای متوالی است، معماران پردازندههای مرکزی به اختصاص مساحت عظیمی از سیلیکون به پیشبینی انشعاب، اجرای خارج از ترتیب و حافظههای پنهان بزرگتر ادامه میدهند تا تنها چند درصد ناچیز به سرعت متوالی بیفزایند.[4]
در همین حال، بارهای کاری که واقعاً دارای کسر موازی نزدیک به ۹۹.۹ درصد هستند — مانند رندر گرافیکی و ضرب ماتریس برای هوش مصنوعی — بهطور کامل از پردازندههای مرکزی همهمنظوره فاصله گرفتهاند.[8]
این وظایف بهشدت موازی، در عوض روی واحدهای پردازش گرافیکی و واحدهای پردازش تنسور اجرا میشوند؛ تراشههایی که بهینهسازیهای پیچیده متوالی را کنار گذاشتهاند تا هزاران هسته سادهتر و کندتر را روی یک تراشه واحد جای دهند.[7][8]
مرزی که شش دهه پیش تعیین شد، همچنان اقتصاد رایانش ابری را دیکته میکند. اجاره یک ماشین مجازی عظیم ۱۲۸ هستهای در آمازون وب سرویسز یا مایکروسافت آژور، اگر برنامه مستقرشده بهشدت متوالی باشد، چیزی جز هدر دادن سرمایه نیست.[6]
بنابراین، مهندسان نرمافزار باید پیش از تأمین سختافزار، کدهای خود را با دقت پروفایل کرده و کسر دقیق متوالی را شناسایی کنند. اگر رقابت بر سر قفلها یا وابستگی متوالی دادهها وجود داشته باشد، ریختن سیلیکون بیشتر به پای مسئله تنها هزینهها را افزایش میدهد، نه توان عملیاتی را.[4][6]
مرز بعدی در شتاببخشی محاسباتی، نه از طریق افزایش ساده تعداد هستهها، بلکه از دل پیشرفتهای الگوریتمی بیرون خواهد آمد که وابستگیهای متوالی را به ساختارهای قابل موازیسازی بازنویسی کرده و کسر موازی را بیش از پیش به عدد یک نزدیک میکنند.[8]
نکات کلیدی
- قانون اِمدال ثابت میکند که حداکثر افزایش سرعت یک سیستم پردازش موازی، دقیقاً محدود به آن بخش از کد است که باید بهصورت متوالی اجرا شود.
- حتی با وجود بینهایت پردازنده، برنامهای که تنها ۵ درصد کد متوالی دارد، هرگز نمیتواند بیش از ۲۰ برابر سریعتر اجرا شود.
- این قانون توضیح میدهد که چرا صرفاً افزودن هستههای بیشتر به پردازندههای مصرفی، به افزایش متناسب عملکرد در نرمافزارهای روزمره منجر نمیشود.
- قانون گوستافسون در نقطه مقابل نشان میدهد که در پردازشهای با عملکرد بالا، محققان با افزودن پردازندهها، اندازه مسئله را نیز بزرگتر میکنند و بدین ترتیب گلوگاه متوالی را به حداقل میرسانند.
- محدودیتهای فیزیکی پردازش متوالی، طراحان سختافزار را ناگزیر کرده تا تراشههای تخصصی مانند پردازندههای گرافیکی را برای بارهای کاری بهشدت موازی طراحی کنند.
چرا مهم است
با رسیدن سازندگان تراشه به محدودیتهای فیزیکی در سرعت تکهستهایها، صنعت به سمت افزایش تعداد هستهها تغییر مسیر داده است. درک این مرز ریاضی توضیح میدهد که چرا صرفاً خرید یک پردازنده ۶۴ هستهای باعث نمیشود نرمافزارهای روزمره ما ۶۴ برابر سریعتر اجرا شوند.
بررسی عمیق دیدگاهها
معماران سختافزار
تمرکز بر بهینهسازی عملکرد تکرشتهای و شتابدهندههای تخصصی برای کاهش محدودیتهای فیزیکی پردازش متوالی.
برای طراحان سختافزار، قانون اِمدال همان محدودیت بنیادینی است که تخصیص سیلیکون را دیکته میکند. از آنجا که کسر متوالی بیشتر نرمافزارهای مصرفی همچنان بهطور سرسختانهای بالاست، معماران پردازندههای مرکزی نمیتوانند صرفاً هزاران هسته ضعیف تولید کنند و انتظار یک سیستمعامل پاسخگو را داشته باشند. در عوض، آنها باید مساحت عظیمی از دای را به منطقهای پیچیده — مانند پیشبینیکنندههای انشعاب، خطوط لوله اجرای عمیق و حافظههای پنهان عظیم — اختصاص دهند تا تنها دستاوردهای حاشیهای در عملکرد تکرشتهای استخراج کنند. وقتی یک بار کاری واقعاً موازی است، معماران پارادایم پردازنده مرکزی را کاملاً رها کرده و ریاضیات را به شتابدهندههای تخصصی مانند پردازندههای گرافیکی هدایت میکنند.
مهندسان نرمافزار
تأکید بر پروفایل کردن و بازنویسی الگوریتمها برای به حداقل رساندن رقابت بر سر قفلها و افزایش کسر قابل موازیسازی کد.
از منظر مهندسی نرمافزار، این محدودیت بار عملکرد را از دوش سختافزار برداشته و بر دوش پایگاه کد میگذارد. مهندسان درک میکنند که استقرار یک برنامه روی یک نمونه ابری ۱۲۸ هستهای، در صورتی که نرمافزار به قفلهای سراسری یا نوشتنهای متوالی در پایگاه داده متکی باشد، از نظر مالی هدر دادن منابع است. چالش مهندسی به یک بازطراحی الگوریتمی تبدیل میشود: یافتن راههایی برای شکستن وابستگیهای داده، استفاده از ساختارهای داده بدون قفل، و بازنویسی منطق بهگونهای که کسر موازی به عدد یک نزدیک شود. برای این توسعهدهندگان، ابزارهای پروفایل که دقیقاً مشخص میکنند یک برنامه در کجا متوالی میشود، از سختافزار سریعتر ارزشمندترند.
محققان پردازش با عملکرد بالا
استدلال بر این مبنا که مقیاسپذیری ضعیف و افزایش اندازه مسئله، به ابررایانهها اجازه میدهد تا در کاربردهای علمی عملی، از محدودیتهای اِمدال عبور کنند.
در قلمرو پردازش با عملکرد بالا، محققان قانون اِمدال را بهعنوان یک مرز نظری میبینند که بهندرت در جریانهای کاری واقعی آنها صدق میکند. آنها با هدایت قانون گوستافسون خاطرنشان میکنند که ابررایانهها برای حل سریعتر مسائل کوچک ساخته نشدهاند؛ بلکه برای حل مسائل بسیار بزرگتر در همان مقدار زمان ساخته شدهاند. هنگام شبیهسازی دینامیک سیالات یا آموزش مدلهای زبانی بزرگ، زمان راهاندازی متوالی نسبتاً ثابت میماند، در حالی که ریاضیات ماتریسی قابل موازیسازی بهطور نمایی با دادهها مقیاس مییابد. با افزایش مداوم اندازه مسئله (مقیاسپذیری ضعیف)، محققان اطمینان حاصل میکنند که کسر متوالی به لحاظ آماری به حدی کوچک میشود که دیگر اهمیتی ندارد و بدین ترتیب ساخت کلاسترهای محاسباتی اگزاسکیل توجیه میشود.
منابع
[1]AFIPS Conference Proceedingsمحققان پردازش با عملکرد بالاValidity of the Single Processor Approach to Achieving Large Scale Computing Capabilities
مطالعه در AFIPS Conference Proceedings →
[2]Oracleمعماران سختافزار3.5.1 Amdahl's Law
مطالعه در Oracle →
[3]Computer Systems Fundamentalsمعماران سختافزار9.4. Limits of Parallelism and Scaling
مطالعه در Computer Systems Fundamentals →
[4]UC Berkeleyمهندسان نرمافزارAmdahl's Law - CS 61C Course Notes
مطالعه در UC Berkeley →
[5]Measuring Computer Performanceمحققان پردازش با عملکرد بالاAmdahl's argument is essentially that the overall performance improvement observed in an application program is limited by that portion of the application that is unaffected by whatever change was made to the system.
مطالعه در Measuring Computer Performance →
[6]Splunkمهندسان نرمافزارAmdahl's Law: Understanding the Basics
مطالعه در Splunk →
[7]Built Inمهندسان نرمافزارWhat is Amdahl's Law? (Definition, Formula, Examples)
مطالعه در Built In →
[8]arXivمحققان پردازش با عملکرد بالاHow Amdahl's law restricts supercomputer applications and building ever bigger supercomputers
مطالعه در arXiv →
[9]تیم سردبیری کوهستانتحلیل تیم سردبیری کوهستان
مطالعه در تیم سردبیری کوهستان →
نظرات
بیشتر در دیدگاه
مشاهده همه →سرطانشناسی متابولیک
معامله ۳۶ به ۴ در تولید ATP: چرا سلولهای سرطانی کارایی انرژی را فدای تولید توده زیستی میکنند؟
8 منبع
ترمودینامیک
معادله ΔSmix = -R ∑ xi ln xi: چرا ترکیب دو عنصر همیشه آلیاژ را از اجزای خالصش پایدارتر میکند؟
7 منبع
طراحی الگوریتم
معامله فیلتر بلوم: چگونه یک ساختار داده احتمالی با پذیرش خطای مثبت کاذب، فضای ذخیرهسازی را نجات میدهد
4 منبع
رشد کودک
استدلال بالینی برای «بازی پرخطر»: چرا متخصصان اطفال استقلال بدون نظارت را تجویز میکنند؟
3 منبع
هر زاویه. هر روز.
دریافت دیدگاه اخبار همراه با پوشش کامل منابع و تحلیل دیدگاهها، مستقیم در صندوق ورودی شما.





