چگونه یک کلاستر GPU تحقیقاتی بسازیم؟

فناوری
 کلاستر GPU تحقیقاتی

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

برخی از سریع‌ترین رایانه‌های جهان، رایانه‌های کلاستر هستند. کلاستر یک سیستم کامپیوتری است که شامل دو یا چند کامپیوتر ("گره") متصل به یک شبکه پرسرعت است. کلاسترها می‌توانند دسترسی بیشتر، اطمینان و مقیاس‌پذیری بالاتری نسبت به رایانه‌های فردی ایجاد کنند. با متداول شدن پردازنده‌های گرافیکی در سیستم‌های محاسباتی با کارایی بالا (HPC)، پردازنده‌های گرافیکی NVIDIA در حال تبدیل شدن به بخش جدا نشدنی‌ای از قدرتمندترین ابررایانه‌ها و کلاسترهای جهان هستند. در بین 500 ابر رایانه سریع‌ جهان، نزدیک به 50 ابر رایانه مجهز به پردازنده‌های گرافیکی NVIDIA است.

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

 

دلایل متعددی برای ایجاد یک کلاستر تحقیقاتی مبتنی بر GPU وجود دارد:

  • بخواهید برنامه های خود را به GPU و محاسبات توزیع شده (با استفاده از CUDA-aware MPI) منتقل کنید.
  • توازن بار GPU و CPU را برای برنامه خود تنظیم کنید.
  • از کلاستر به عنوان پلتفرم توسعه کد و نرم افزار استفاده کنید.
  • کم بودن هزینه سرمایه گذاری برای یک کلاستر GPU تحقیقاتی


 شکل1 مراحل ساخت یک کلاستر GPU کوچک را نشان می دهد.

شکل۱ – هفت گام برای ساخت کلاستر GPU

شکل۱ – هفت گام برای ساخت کلاستر GPU

۱-سخت افزار خود را انتخاب کنید

دو مرحله برای انتخاب سخت افزار مناسب وجود دارد.

 

الف) جزئیات سخت افزار گره. 

هر گره دارای اجزای زیر است.

  •  پردازنده  CPU  از  (هر برند و کمپانی‌ای)
  •   یک  مادربرد با اتصالات PCI-express  زیر:
    •   2 اتصال PCIe x16 Gen2/3 برای GPU های تسلا
    •   یک اتصال PCIe  x8 برای کارت شبکه با پهنای باند بالا (HCI  InifiniBand)
  •  2  پورت  شبکه در دسترس
  •  حداقل  16-24  گیگابایت  رم (داشتن  رم بیشتر در سیستم پیشنهاد می‌شود).
  •  یک  واحد منبع تغذیه (SMPS)  با  توان کافی.  منبع تغذیه باید بتواند توان مصرفی CPU،  GPU و  سایر اجزای سیستم را تأمین کند.   
  •  حافظه  ثانویه (HDD/SSD) بر اساس نیاز شما.   

 

ب) انتخاب GPU با معماری و ساختار مناسب. 

بردهای GPU به اندازه کافی پهن هستند تا دو اسلات PCI-e مجاور را بپوشانند، بنابراین مطمئن شوید که اسلات های PCIe x16 و x8 به صورت فیزیکی روی مادربرد از هم جدا شده باشند تا بتوانید حداقل دو عدد GPU PCI-e x16 و 1 کارت شبکه PCIe x8 را در کنار هم جای دهید.

فرم فاکتور یا معماری GPU ها نیز بسیار با اهمیت است. هنگامی که مشخصات دستگاه خود را تعیین کردید، باید تصمیم بگیرید که چه مدل GPU را برای سیستم خود در نظر می‌گیرید.پردازنده‌های گرافیکی NVIDIA Tesla مبتنی بر معماری Kepler به دو شکل اصلی در دسترس هستند.

  •  کارت  گرافیک‌های تسلا (سری C)  شامل  خنک‌کننده  فعال هستند (این  بدان معناست که آنها یک فن روی تراشه GPU دارند)  که  می‌توانید آن‌ها را فقط در یک اسلات  PCI-e x16 به رایانه رومیزی خود وصل کنید. منبع تغذیه آن‌ها معمولا 6 پین یا 8  پین است.   
  •  کارت  گرافیک‌های سروری (سری M) پردازنده‌های گرافیکی با خنک‌کننده غیرفعال (بدون فن)  هستند  که در سرورهای استاندارد فروخته شده و  توسط OEM‌های  مختلف نصب شده‌اند.

 

سه گزینه برای افزودن GPU به کلاستر شما وجود دارد:

  •  می‌توانید پردازنده های گرافیکی سری C  را  خریداری کرده و آنها را در کلاستر یا  سرورهای موجود با فضای کافی نصب کنید.   
  •  می‌توانید  کلاستر از پیش اسمبل شده را از یک فروشنده  با پردازنده های گرافیکی سری C  خریداری  کنید. 
  •  می توانید سرورهایی را با پردازنده های  گرافیکی سری M  خریداری  کنید.

۲-اختصاص فضا، برق و خنک کننده

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

۳- مونتاژ و استقرار فیزیکی

پس از تصمیم گیری در مورد پیکربندی ماشین، املاک و مستغلات، گام بعدی پیکربندی کلاستر به صورت فیزیکی است. شکل 2 اتصالات کلاستر را نشان می دهد. گره مرکزی، سر خارجی کلاستر با دنیای بیرون است و تمام اتصالات شبکه خارجی را دریافت می‌کند. گره مرکزی درخواست‌های ورودی را پردازش می‌کند و کار را به گره‌های محاسباتی (گره‌هایی دارای GPU که محاسبات را انجام می‌دهند) اختصاص می‌دهد.

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

 گره مرکزی و ارتباط بین گره‌های محاسباتی

۴- نصب گره مرکزی

توصیه می‌شود بر روی گره مرکزی از توزیع متن باز Rocks Linux استفاده گردد. Rocks یک راه‌حل تنظیم پذیر، آسان و سریع برای نصب گره‌ها است. بسته نصب Rocks شامل اجزای ضروری کلاسترها، مانند MPI (Message Passing Interface یا رابط ارسال پیام برای ایجاد ارتباط گره‌ها با یکدیگر) است. نحوه نصب گره مرکزی در Rocks به خوبی مستند شده که می‌توان آن را در راهنمای کاربر Rocks مطالعه کرد، با این حال خلاصه ای از مراحل آورده شده است.

  • مراحل  فصل 3 راهنمای کاربری Rocks را دنبال کرده و آن را (از طریق CD) نصب کنید.
  • درایورهای  NVIDIA  و  CUDA  Toolkit  را روی گره مرکزی نصب نمایید.  (CUDA یک  بسته جامع ارائه می دهد که شامل درایور  NVIDIA،  جعبه ابزار و مثال های CUDA  است.)
  •  درایورهای اتصال شبکه (به عنوان مثال درایور Infiniband) را روی گره مرکزی نصب کنید. این درایورها در سایت سازنده کارت شبکه در دسترس هستند.
  •  Nagios®  Core™ یک سیستم متن باز بوده و جهت نظارت بر شبکه است. گره‌ها  و سرویس‌هایی را که شما مشخص کرده‌اید را  نظارت می‌کند و زمانی که مشکل ایجاد شود به شما هشدار می‌دهد. برای  نصب، دستورالعمل های ارائه شده در راهنمای  نصب Nagios  را  دنبال کنید.
  •  افزونه  NRPE  Nagios به  شما امکان می‌دهد که پلاگین های Nagios  را  از راه دور، بر روی سیستم‌های لینوکس اجرا  کنید. از این طریق، بر منابع سیستم از جمله بار CPU و حافظه استفاده شده و … از راه دسترسی خواهید داشت. NRPE  را  طبق راهنمای  نصب، نصب کنید.

۵- نصب گره‌های محاسباتی

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

  • روی گره مرکزی: در ترمینال دستور زیر را اجرا کنید:   

 

insert-ethers >

 

  • گزینه‌ی «Compute Nodes» را به عنوان گره جدید برای افزودن انتخاب کنید.
  •  گره محاسباتی را در حالی که CD نصب Rocks در سرور (با اولویت بوت CD)روشن کنید یا یک نصب از طریق شبکه انجام دهید.   
  • گره محاسباتی به گره مرکزی متصل می شود و نصب را شروع می کند.
  • بسته NRPE  را همانطور که در راهنمای NRPE  توضیح  داده شده نصب کنید.

۶- مدیریت و نظارت

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