یعنی چه
قانون امدال (Amdahl's law) یک اصل تخصصی در معماری کامپیوتر و محاسبات موازی است که نشان میدهد میزان شتابدهی کل یک سیستم با ارتقای تنها یک بخش از آن، توسط بخشهای دیگری که تغییر نیافتهاند محدود میشود. به عبارت دیگر، بخشهای ترتیبی و غیرقابلتغییر برنامه، سقف نهایی سرعت کل سیستم را تعیین میکنند. به عنوان یک مثال عینی و روزمره، اگر یک برنامه کامپیوتری در گوشی شما کار سنگینی انجام میدهد که تنها ۲۰ درصد آن کار قابل سپردن به چند هسته پردازشی است و ۸۰ درصد دیگر باید به صف و پشت سر هم انجام شود، حتی اگر یک پردازنده فوقالعاده با هزاران هسته بخرید، بهبود سرعت کل گوشی شما بسیار ناچیز خواهد بود، زیرا آن بخشِ ۸۰ درصدی بدون تغییر باقی مانده و مانند گلوگاه عمل میکند.
تلفظ
این عبارت از دو واژه ترکیب شده است: «قانون» که واژهای با ریشه عربی است و «اَمدال» که نام خانوادگی دانشمند آمریکایی است و با فتح الف خوانده میشود.
در جدول
در جدولهای کلمات متقاطع و شرح در متن، پاسخ این مفهوم معمولاً خود اصطلاح «قانون امدال» به عنوان قانون محدودیت پردازش موازی است که دقیقاً ده حرف دارد.
به انگلیسی
این اصطلاح در متون علمی بینالمللی و زبان انگلیسی به صورت Amdahl's law یا Amdahl's argument شناخته میشود.
به فارسی
از آنجا که امدال یک نام خاص است، این ترکیب در زبان فارسی معادل لغوی یکتا ندارد، اما به عنوان «قانون حد سرعت پردازش موازی» یا «قانون بازده نزولی محاسبات» ترجمه و تفسیر میشود.
نماد چیست
این قانون فرمول ثابتی دارد که به صورت $S_{\text{latency}}(s) = \frac{1}{(1 - p) + \frac{p}{s}}$ نمایش داده میشود. در این نمادگذاری، S بهبود سرعت کل سیستم، p نسبت بخشی از برنامه است که میتوان آن را موازی کرد و s میزان بهبود سرعت همان بخشِ ارتقایافته است.
معنی انگلیسی/خارجی
واژه Amdahl در اصل یک نام خانوادگی نروژی-آمریکایی متعلق به جین امدال (Gene Amdahl) معمار رایانه برجسته شرکت IBM است. این اصطلاح در سراسر جهان برای توصیف یک پدیده مهندسی و مدیریتی به کار میرود؛ جایی که تلاش برای بهبود بخش کوچکی از یک فرآیند بزرگ، بازدهی کل را به شدت بالا نمیبرد مگر اینکه گلوگاه اصلی برطرف شود.
جمعبندی و توضیح کامل قانون امدال
قانون امدال (Amdahl's law) فراتر از یک فرمول ساده ریاضی در معماری کامپیوتر، یک فلسفه بنیادین و راهبردی در شناخت محدودیتها و مدیریت بهینهسازی منابع در سیستمهای پیچیده است. مفهوم کلیدی این قانون بر این اصل استوار است که بازدهی ناشی از ارتقای یک سیستم، همواره توسط بخشی از آن که بهبود نیافته یا ارتقاناپذیر باقی مانده، محدود میشود. از منظر ریشهشناسی و ساختار واژگانی، این اصطلاح ترکیبی از واژه «قانون» با ریشه یونانی (کانون) و نام خانوادگی «جین امدال»، دانشمند نامدار شرکت آیبیام است که در سال ۱۹۶۷ با درک عمیق از معماری پردازندهها، این حقیقت تلخ اما حیاتی را فرموله کرد. ساختار ریاضی این قانون نشان میدهد که شتابدهی کل، تابعی از نسبت بخش موازیسازی شده و تعداد پردازندههاست و این یعنی ساختار ذاتی یک مسئله، سقف نهایی سرعت آن را تعیین میکند، نه لزوماً تجهیزات سختافزاری که به آن تزریق میشود.
در دنیای واقعی و کاربردهای عملیاتی، مهندسان سیستم و توسعهدهندگان نرمافزار از قانون امدال به عنوان یک قطبنما برای تخصیص منابع مالی و زمانی استفاده میکنند. به عنوان مثال، در طراحی زیرساختهای ابری یا پایگاههای داده بزرگ، پیش از صرف هزینههای کلان برای خرید سرورهای چندصد هستهای، ابتدا تحلیل دقیقی انجام میشود تا مشخص گردد چه میزان از کدهای نرمافزاری قابلیت اجرای همزمان دارند. اگر بخش بزرگی از کدهای یک سیستم به صورت ترتیبی و وابسته به نتایج مراحل قبل اجرا شوند، اصرار بر موازیسازی و افزودن هستههای پردازشی بیشتر، عملاً اتلاف سرمایه و انرژی خواهد بود. این قانون به متخصصان یادآوری میکند که بهینهسازی باید همواره متمرکز بر بزرگترین گلوگاه سیستم باشد تا بیشترین بازدهی ممکن حاصل شود.
برای درک عمیقتر این مفهوم، تفاوت آن با واژهها و قوانین همسایه مانند «قانون گوستافسون» بسیار حائز اهمیت است. در حالی که قانون امدال با فرض ثابت بودن حجم کار (Fixed-size workload) به ما میگوید که افزودن پردازندهها چقدر میتواند زمان اجرای یک مسئله مشخص را کاهش دهد، قانون گوستافسون با نگاهی خوشبینانهتر و واقعگرایانهتر در دنیای محاسبات سنگین، فرض میکند که با افزایش قدرت پردازش، حجم و ابعاد مسئله نیز بزرگتر میشود (Scaled-speedup). به زبان ساده، امدال بر روی سریعتر انجام دادن یک کار مشخص تمرکز دارد، اما گوستافسون بر روی انجام کارهای بیشتر و بزرگتر در همان مدت زمان تاکید میکند. همچنین تفکیک این قانون از مفهوم «قانون بروکز» در مدیریت پروژه (که میگوید افزودن نیروی انسانی به یک پروژه نرمافزاری عقبافتاده، سرعت آن را کمتر میکند) ضروری است؛ چرا که امدال با محدودیتهای فنی و ساختاری کدهای کامپیوتری سروکار دارد، در حالی که بروکز به چالشهای ارتباطی و انسانی میپردازد.
یکی از رایجترین و مهلکترین برداشتهای اشتباه درباره قانون امدال، نگرش خطی به توان پردازشی است. بسیاری از کاربران و حتی مدیران فنی به اشتباه تصور میکنند که خرید یک ابررایانه یا ارتقای سختافزار به پردازندههای چند ده هستهای، به معنای جهش خطی و متناسب در سرعت اجرای تمامی برنامههاست. این تصور غلط، قانون بازده نزولی را نادیده میگیرد. طبق قانون امدال، اگر تنها ۵ درصد از یک برنامه به صورت ترتیبی اجرا شود و غیرقابل موازیسازی باشد، حتی با مجهز کردن سیستم به بینهایت پردازنده و هسته موازی، شتاب کل سیستم هرگز نمیتواند از مرز ۲۰ برابر فراتر رود. این حقیقت ریاضی نشان میدهد که بخشهای کوچک ترتیبی، مانند یک ترمز مطلق عمل میکنند و نادیده گرفتن آنها در تحلیلهای اولیه، منجر به شکست پروژههای بزرگ بهینهسازی میشود.
نکته کاربردی، مدیریتی و استراتژیکی که میتوان از قانون امدال استخراج کرد، قابلیت تعمیم بینظیر آن به سیستمهای انسانی، ساختارهای سازمانی و زنجیرههای تأمین است. در مدیریت یک سازمان، ارتقای بخشهای جانبی مثل اتوماسیون اداری یا زیباسازی فضا، بدون رفع گلوگاه اصلی که مثلاً کندی فرآیند تصمیمگیری در مدیریت کلان است، هیچ بهبود ملموسی در خروجی کلی سازمان ایجاد نخواهد کرد. این قانون به مدیران و تحلیلگران آموزش میدهد که پیش از اقدام برای اصلاح یا تزریق سرمایه به هر سیستمی، ابتدا با یک دید جامع، سهم هر بخش را در فرآیند کلی بسنجند. به عنوان یک اصل طلایی، قانون امدال به ما یادآوری میکند که قدرت و سرعت یک زنجیره، تنها به اندازه ضعیفترین و کندترین حلقه آن است و هوشمندی واقعی در شناسایی و تمرکز بر همان حلقه نهفته است.