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

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

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

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

فراتر از یک تراشه واحد: کلاسترهایی از ماشین‌های مستقل

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

چرا Message Passing در این مقیاس ضروری است

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

کامپیوترهای در مقیاس انبار

یک Warehouse-Scale Computer (WSC) مفهوم کلاستر را به یک ساختمان کامل پر از ده‌ها هزار ماشین منفرد گسترش می‌دهد، که به‌طور جمعی به‌عنوان یک منبع محاسباتی عظیم واحد عمل می‌کنند. این پایه معماری زیربنایی پلتفرم‌های محاسبات ابری بزرگ و سرویس‌های اینترنتی بزرگ است، جایی که یک درخواست کاربر منفرد ممکن است با هماهنگی کار در سراسر بسیاری هزار ماشین به‌طور هم‌زمان مدیریت شود.

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

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

توپولوژی‌های شبکه: ماشین‌ها چگونه متصل می‌شوند

آرایش فیزیکی و منطقی اتصالات بین ماشین‌ها، به نام Network Topology، به‌طور قابل‌توجهی هم کارایی و هم هزینه را در مقیاس بزرگ تحت‌تأثیر قرار می‌دهد.

  • یک Bus Topology همه ماشین‌ها را به یک کانال ارتباطی مشترک واحد متصل می‌کند، ساده اما به‌سرعت با افزودن ماشین‌های بیشتر به یک گلوگاه تبدیل می‌شود.
  • یک Ring Topology هر ماشین را دقیقاً به دو همسایه متصل می‌کند، و یک حلقه تشکیل می‌دهد، که مقیاس‌پذیری بهتری نسبت به bus ارائه می‌دهد اما نیازمند این است که پیام‌ها به‌طور بالقوه از میان چند ماشین میانی عبور کنند تا به مقصدشان برسند.
  • یک Mesh یا Torus Topology هر ماشین را به چند همسایه نزدیک در یک الگوی شبکه‌مانند متصل می‌کند، که چند مسیر ممکن بین هر دو ماشین ارائه می‌دهد، و هم کارایی و هم تحمل‌پذیری خطا را به قیمت سیم‌کشی پیچیده‌تر بهبود می‌بخشد.
  • یک Fully Connected Topology هر ماشین را مستقیماً به هر ماشین دیگر متصل می‌کند، که بهترین کارایی ممکن را ارائه می‌دهد اما با رشد تعداد ماشین‌ها، سیم‌کشی آن به‌طور منع‌کننده‌ای گران می‌شود.

چرا انتخاب توپولوژی شامل یک مبادله واقعی است

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

چرا این مقیاس از موازی‌سازی اهمیت دارد

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

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

مقالات مرتبط

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

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

ادامه

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

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

ادامه

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

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

ادامه

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

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

ادامه

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

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

ادامه

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

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

ادامه