فراتر از یک تراشه واحد: کلاسترهایی از ماشینهای مستقل
چندپردازندههای حافظه مشترک که پیشتر در این مجموعه بحث شد، مستقیماً حافظه را به اشتراک میگذارند و از طریق سختافزار انسجام کش ارتباط برقرار میکنند. یک Cluster رویکردی کاملاً متفاوت را اتخاذ میکند: بسیاری کامپیوتر مستقل را، هرکدام با حافظه جداگانه خودشان، با استفاده از یک شبکه به هم متصل میکند، و آنها را از طریق Message Passing صریح بهجای دسترسی حافظه مشترک هماهنگ میکند.
چرا Message Passing در این مقیاس ضروری است
حفظ انسجام کش سختافزاری، که پیشتر در این مجموعه بحث شد، وقتی یک سیستم بهاندازه شامل شدن هزاران ماشین جداگانه رشد میکند غیرعملی میشود. در عوض، هر ماشین در یک کلاستر سیستمعامل و فضای حافظه مستقل خودش را اجرا میکند، و ماشینهای همکار صراحتاً پیامها را در سراسر شبکه ارسال و دریافت میکنند تا داده را به اشتراک بگذارند و کار را هماهنگ کنند، و سادگی برنامهنویسی حافظه مشترک را با توانایی مقیاسدهی به تعداد بسیار بزرگتری از واحدهای پردازشی مستقل مبادله میکنند.
کامپیوترهای در مقیاس انبار
یک Warehouse-Scale Computer (WSC) مفهوم کلاستر را به یک ساختمان کامل پر از دهها هزار ماشین منفرد گسترش میدهد، که بهطور جمعی بهعنوان یک منبع محاسباتی عظیم واحد عمل میکنند. این پایه معماری زیربنایی پلتفرمهای محاسبات ابری بزرگ و سرویسهای اینترنتی بزرگ است، جایی که یک درخواست کاربر منفرد ممکن است با هماهنگی کار در سراسر بسیاری هزار ماشین بهطور همزمان مدیریت شود.
چرا سیستمهای در مقیاس انبار نیازمند تفکر طراحی متفاوتی هستند
در این مقیاس، خرابیهای ماشین منفرد استثنائات نادری نیستند بلکه رویدادهای روتین و مورد انتظاری هستند که بهطور مداوم در سراسر چنین تعداد زیادی از مؤلفهها اتفاق میافتند. نرمافزاری که در این مقیاس اجرا میشود باید از ابتدا طوری طراحی شود که با ظرافت خرابیهای ماشین منفرد را تحمل کند، طرز فکری اساساً متفاوت از طراحی نرمافزار برای یک ماشین قابلاعتماد واحد.
توپولوژیهای شبکه: ماشینها چگونه متصل میشوند
آرایش فیزیکی و منطقی اتصالات بین ماشینها، به نام Network Topology، بهطور قابلتوجهی هم کارایی و هم هزینه را در مقیاس بزرگ تحتتأثیر قرار میدهد.
- یک
Bus Topologyهمه ماشینها را به یک کانال ارتباطی مشترک واحد متصل میکند، ساده اما بهسرعت با افزودن ماشینهای بیشتر به یک گلوگاه تبدیل میشود. - یک
Ring Topologyهر ماشین را دقیقاً به دو همسایه متصل میکند، و یک حلقه تشکیل میدهد، که مقیاسپذیری بهتری نسبت به bus ارائه میدهد اما نیازمند این است که پیامها بهطور بالقوه از میان چند ماشین میانی عبور کنند تا به مقصدشان برسند. - یک
MeshیاTorus Topologyهر ماشین را به چند همسایه نزدیک در یک الگوی شبکهمانند متصل میکند، که چند مسیر ممکن بین هر دو ماشین ارائه میدهد، و هم کارایی و هم تحملپذیری خطا را به قیمت سیمکشی پیچیدهتر بهبود میبخشد. - یک
Fully Connected Topologyهر ماشین را مستقیماً به هر ماشین دیگر متصل میکند، که بهترین کارایی ممکن را ارائه میدهد اما با رشد تعداد ماشینها، سیمکشی آن بهطور منعکنندهای گران میشود.
چرا انتخاب توپولوژی شامل یک مبادله واقعی است
انتخاب یک توپولوژی شبکه اساساً درباره توازن کارایی ارتباطات با هزینه و پیچیدگی سیمکشی فیزیکی است. سیستمهای واقعی در مقیاس بزرگ معمولاً یک توپولوژی، مانند یک mesh یا یک طرح سلسلهمراتبی پیچیدهتر، انتخاب میکنند که کارایی ارتباطی خوبی برای الگوی بار کاری مورد انتظار بدون هزینه سیمکشی غیرعملی یک شبکه کاملاً متصل فراهم کند.
چرا این مقیاس از موازیسازی اهمیت دارد
کلاسترها و کامپیوترهای در مقیاس انبار انتهای دور طیف موازیسازی معرفیشده در سراسر این فصل را نشان میدهند، و همان اصول بنیادین تقسیم کار و هماهنگی واحدهای پردازشی مستقل، که ابتدا در تراشههای چندهستهای دیده شد، را تا کل ساختمانهای ماشینهای همکار که سرویسهای اینترنتی مورد اتکای روزانه را قدرت میدهند گسترش میدهند.