حل مسائل علمی و کاربردی در دنیای امروز به توان پردازشی بالایی نیاز دارد که با روشهای سنتی غیرممکن یا بسیار هزینهبر و زمانبر است. ازهمینرو ظهور پردازشهای فوق سریع که به آن HPC میگویند و بهطور خاص ترافلاپس و پتافلاپس در دنیای مدرن نقش ویژهای ایفا میکنند. این پردازشها راهکارهایی برای ارزیابی، پیشگویی مدلهای موجود و آنالیز دادههای انبوه ارائه میدهند و باعث پیشرفتهای چشمگیر در حوزههای مرتبط با سیستمهای فناوری اطلاعات، سیستمهای مرتبط با صنعت بانکی و همچنین حوزههای علمی میشوند. در این مقاله قصد داریم اول از همه به سوال «HPC چیست» پاسخ دهیم و سپس به بررسی نحوه عملکرد و کاربردهای پردازشهای فوق سریع بپردازیم. به مطالعه این مقاله ادامه دهید تا با یکی از کاربردیترین تکنولوژیهای روز دنیا آشنا شوید.
HPC چیست؟ پردازش فوق سریع
HPC نوعی تکنولوژی است که از خوشههایی (Clusters) از پردازندههای قدرتمند استفاده میکند که بهطور موازی کار میکنند. از این تکنولوژی برای پردازش مجموعه دادههای (Dataset) چندبعدی بزرگ (Big data) و حل مشکلات پیچیده با سرعت بسیار بالا استفاده میشود. سرعت سیستمهای HPC معمولا بیش از یک میلیون برابر سرعت سیستمهای سرور، لپتاپ یا دسکتاپ است.
پارادایم سیستم HPC برای چندین دهه سوپر کامپیوتر (Supercomputer) بود؛ سوپر کامپیوتر یک کامپیوتر هدفمند است که میلیونها پردازنده یا هسته پردازنده را درون خود جای داده است و کماکان نیز در دنیای امروز استفاده میشود. بااینحال، راهحلهای HPC که روی کلاسترهایی از سرورهای کامپیوتر با سرعت بالا که در محل یا روی ابر میزبانی میشوند، بیشتر مورد استقبال سازمانهای امروزی قرار گرفتهاند.
بار کاری HPC بینشهای مهم جدیدی را آشکار میکند که دانش انسانی را ارتقا میدهد و مزیتهای رقابتی قابل توجهی ایجاد میکند. بهعنوان مثال، HPC برای توالیسازی DNA، خودکارسازی معاملات سهام و اجرای شبیهسازیها و الگوریتمهای هوش مصنوعی (AI) استفاده میشود که ترابایت جریان داده (Terabytes of data streaming) را از حسگرهای اینترنت اشیا (IoT)، رادار و سیستمهای GPS لحظهای برای تصمیمگیریهای آنی تجزیه و تحلیل میکند.
درک بهتر کلاستر HPC
یک کلاستر HPC مجموعهای از کامپیوترهای به هم پیوسته است که بهعنوان یک سیستم واحد بهصورت موازی کار میکنند و وظایف محاسباتی در مقیاس بزرگ انجام میدهند. کلاسترهای HPC برای ارائه عملکرد و مقیاسپذیری بالا طراحی شدهاند که دانشمندان، محققان و مهندسان را قادر به حل مسائل پیچیدهای میسازند که حل آنها با یک کامپیوتر غیرممکن است.
یک کلاستر پردازش فوق سریع معمولا از تعداد زیادی گره (Node) محاسباتی مجزا تشکیل شده است که هرکدام از آنها به یک یا چند پردازنده، شتابدهنده (Accelerator)، حافظه و فضای ذخیرهسازی مجهز هستند. این گرهها بهوسیله یک شبکه با کارایی بالا به هم متصل شدهاند که به آنها اجازه میدهد اطلاعات را به اشتراک بگذارند و در انجام وظایف با یکدیگر همکاری کنند.
بهعلاوه، کلاستر معمولا شامل نرمافزارها و ابزارهایی برای مدیریت منابع مانند زمانبندی کارها، توزیع دادهها و نظارت بر عملکرد است. پارتیشنبندی دادهها و توزیع وظایف در کلاسترها باعث انجام کارها بهصورت موازی میشود که افزایش سرعت اپلیکیشنها را به همراه دارد.
چرا پردازشهای فوق سریع در دنیای مدرن ضروری است؟
اکوسیستم مدرن سرشار از دادهها و ابزارهای محاسباتی فشرده برای تجزیه و تحلیل آن است. HPC با پردازش دادهها در زمان مناسب به نوآوری و ایجاد بینش در کسبوکارها کمک میکند. همچنین پردازشهای فوق سریع به شرکتها اجازه میدهد تا سناریوهای کسبوکار و نوسانات بازار را پیشبینی کرده و مطابق با آنها تصمیمگیری کنند. حوزه پزشکی نیز با دسترسی آسان HPC به ابر در حال تحول است؛ درواقع پردازشهای فوق سریع به مدلسازی شیوع بیماری، رمزگشایی ژنوم سلولهای سرطانی و درک چگونگی پیشرفت بیماریها کمک میکند.
HPC چگونه کار میکند؟
یک سیستم محاسباتی استاندارد مشکلات را اغلب با استفاده از محاسبات سریال (Serial computing) حل میکند. این سیستم بار کاری (Workload) را به دنبالهای از وظایف تقسیم کرده و سپس آنها را یکی پس از دیگری در همان پردازنده انجام میدهد. در ادامه به بررسی نحوه عملکرد HPC میپردازیم:
- رایانش موازی انبوه: رایانش موازی چندین وظیفه را بهطور همزمان روی چندین پردازنده یا سرور کامپیوتری اجرا میکند. رایانش موازی انبوه همان رایانش موازی با استفاده از دهها هزار تا میلیونها پردازنده یا هسته پردازنده است.
- کلاسترهای کامپیوتر یا کلاسترهای HPC: یک کلاستر HPC از چندین سرور کامپیوتری با سرعت بالا تشکیل شده است که به یکدیگر شبکه شدهاند. این شبکه کامپیوتری با یک زمانبندی متمرکز، بار کاری رایانش موازی را مدیریت میکند. کامپیوترها که گره (Node) نیز نامیده میشوند، از CPUهای چندهستهای با کارایی بالا (High-performance) یا GPUها (واحدهای پردازش گرافیکی) استفاده میکنند که برای محاسبات سخت ریاضی، مدلهای یادگیری ماشین و کارهای سخت گرافیکی بسیار مناسب هستند. یک کلاستر واحد HPC میتواند شامل بیش از 100هزار گره باشد.
- اجزای High-performance: سایر منابع محاسباتی در یک کلاستر HPC (شبکه، حافظه، ذخیرهسازی و سیستمهای فایل) اجزایی با سرعت بالا، بازدهی بالا و تاخیر پایین هستند که میتوانند با گرهها هماهنگ شوند و قدرت محاسباتی و عملکرد کلاستر را بهینه کنند.
- توزیع دادهها: دادههای موردنیاز برای پردازش بین گرهها توزیع میشود؛ بهطوری که هر گره روی بخشی از دادهها کار میکند.
- نظارت و کنترل: این کلاستر شامل ابزارهای نرمافزاری است که عملکرد گرهها را نظارت میکند و به کنترل توزیع وظایف و دادهها میپردازد. به این ترتیب، پردازش بهطور کارآمد و موثری انجام خواهد شد.
- خروجی: خروجی نهایی همان نتیجه محاسبات ترکیبی است که توسط همه گرهها در کلاستر انجام میشود. خروجی بهطور کلی در یک سیستم فایل بزرگ و موازی ذخیره شده و/یا بهصورت گرافیکی در قالب تصاویر یا سایر موارد بصری ارائه میشود.
انواع کلاسترهای HPC
پردازشهای فوق سریع شامل سه جزء اصلی محاسبه (Compute)، شبکه (Network) و ذخیرهسازی (Storage) هستند. گرههای سیستم HPC (بخش محاسبه) به سایر گرهها متصل میشوند تا الگوریتمها و نرمافزار را بهطور همزمان اجرا کنند و سپس برای گرفتن خروجی با سرورهای داده (ذخیرهسازی) متصل (شبکه) شوند.
ازآنجاییکه پروژههای HPC تمایل به بزرگ شدن و پیچیده شدن دارند، گرههای سیستم معمولا مجبور به تبادل نتایج محاسبات خود با یکدیگر میشوند؛ این بدان معناست که آنها به دیسکهای سریع، حافظه پرسرعت، تاخیر کم و شبکه با پهنای باند بالا بین گرهها و سیستمهای ذخیرهسازی نیاز دارند.
HPC معمولا به دو نوع طراحی کلی شامل محاسبات کلاستر و محاسبات توزیعشده تقسیم میشود که در ادامه به توضیح کامل آنها میپردازیم:
محاسبات کلاستر
محاسبات موازی با مجموعهای از کامپیوترها (کلاسترها) که با یکدیگر کار میکنند، انجام میشود؛ مانند یک گروه متصل از سرورهایی که از نظر فیزیکی و توپولوژی شبکه نزدیک یکدیگر قرار دارند تا تاخیر بین گرهها به حداقل برسد.
محاسبات توزیعشده
مدل محاسبات توزیعشده قدرت محاسباتی چندین کامپیوتر را در یک شبکه به هم متصل میکند که در یک مکان یا در چندین مکان مختلف توزیع شدهاند و شامل سختافزارهای داخلی (On-premises) و منابع ابری میشوند. علاوهبر این، کلاسترهای HPC مدلهای سختافزاری همگن (homogeneous) از ناهمگن (heterogeneous) قابل تشخیص هستند.
در کلاسترهای همگن، همه ماشینها عملکرد و پیکربندی مشابهی دارند و اغلب یکسان و قابل تعویض هستند. در کلاسترهای ناهمگن مجموعهای از سختافزارها با ویژگیهای متفاوت (تعداد بالای هسته پردازنده، شتابدهی GPU و…) وجود دارد و سیستم زمانی به بهترین شکل استفاده میشود که وظایفی به گرهها اختصاص داده شود که متناسب با مزایای منحصربهفرد هرکدام از آنها باشد.
بررسی ارتباط HPC و رایانش ابری
در یک دهه اخیر، هزینه بالای HPC باعث شده است که بسیاری از سازمانها امکان استفاده از این تکنولوژی را نداشته باشند. این هزینهها معمولا شامل هزینه خرید یا اجاره یک سوپر کامپیوتر یا ایجاد و میزبانی یک کلاستر HPC در مرکز داده داخلی است.
در حال حاضر، HPC در فضای ابری که با عنوانهای HPC بهعنوان سرویس (HPCaaS) نیز شناخته میشود، روشی سریعتر، مقیاسپذیرتر و مقرونبهصرفهتر برای شرکتها ارائه میدهد که از مزایای HPC بهرهمند شوند. HPCaaS معمولا شامل موارد زیر میشود:
- کلاسترهای HPC
- زیرساخت میزبانیشده در مرکز داده یک ارائهدهنده سرویس ابری
- قابلیتهای اکوسیستم (مانند هوش مصنوعی و تجربه و تحلیل دادهها)
- دانش تخصصی HPC.
امروزه، HPC در ابر توسط سه ترند همگرا هدایت میشود که در ادامه به توضیح آنها میپردازیم:
- تقاضای فزاینده: سازمانها در همه صنایع بهطور فزایندهای به اطلاعات برخطی که منجر به تصمیمهای لحظهای میشود و مزایای رقابتی که از حل مشکلات پیچیدهای که فقط توسط اپلیکیشنهای HPC قابل حل هستند، وابسته میشوند. بهعنوان مثال، با وجود گسترش کلاهبرداری، کشف روشهای تقلب در کارت اعتباری با کمک HPC بسیار سریعتر از قبل شده است که از به بار آمدن خسارتهای سنگین جلوگیری میکند.
- رواج شبکهسازی RDMA با تاخیر کم و بازدهی بالا: RDMA (دسترسی مستقیم به حافظه از راه دور) به یک کامپیوتر شبکهشده اجازه میدهد تا به حافظه یک کامپیوتر دیگر در شبکه بدون دخالت سیستمعامل یا متوقف کردن پردازش کامپیوتر دسترسی داشته باشد. این موضوع باعث به حداقل رسیدن تاخیر و افزایش حداکثری بازدهی میشود. فابریکهای RDMA در حال ظهور با کارایی بالا -شامل Infiniband، معماری رابط مجازی (Virtual Interface Architecture) و RoCE- اساسا HPC مبتنی بر ابر را ممکن میسازند.
- دسترسیپذیری HPCaaS ابر خصوصی و ابر عمومی گسترده: امروزه هر ارائهدهنده سرویس ابر عمومی پیشرو سرویسهای HPC ارائه میدهد. هرچند برخی از سازمانها با توجه به دارا بودن سطح حساس امنیتی بار کاری، HPC خود را روی سختافزارهای داخلی ادامه میدهند، اما بسیاری از سازمانها به راهحلهای HPC ابر خصوصی روی آوردهاند.
بررسی مزایای HPC در ابر
حالا که ماهیت و چیستی HPC و نحوه عملکرد آن را بررسی کردیم، وقت آن است که به بررسی مزایای پردازشهای فوق سریع در ابر بپردازیم:
- سرعت و عملکرد: پردازش فوق سریع (HPC) دادهها و وظایف را با سرعت بالاتری نسبت به سرور و کامپیوتر واحد پردازش میکند. وظایفی که انجام آنها ممکن است با یک سیستم محاسباتی معمولی هفتهها یا ماهها طول بکشد، در HPC فقط طی چند ساعت انجام میشود.
- انعطافپذیری و کارایی: با HPC در فضای ابری میتوان بار کاری (workload) را متناسب با نیاز افزایش و کاهش داد. با اتصال به اینترنت قوی، HPC از هر نقطهای در جهان قابل دسترسی خواهد بود.
- صرفهجویی در هزینه: بهدلیل سرعت، انعطافپذیری و کارایی بالای HPC در فضای ابری، سازمانها میتوانند در زمان و هزینه استفاده از منابع محاسباتی صرفهجویی کنند.
- تحمل خطا: در صورت از کار افتادن یکی از نودهای کلاستر HPC، اختلالی در سایر قسمتهای سیستم ایجاد نخواهد شد.
- تحقیق و توسعه سریع: HPC با سرعت بخشیدن به نتایج پروژههای data-intensive (پروژههایی که بیشترین زمان را صرف پردازش حجم بزرگی از دادههای ورودی و خروجی میکنند) مانند مدلسازی دارویی، طراحی ماشینها و قطعات جدید یا شبیهسازی آزمایشها برای کاهش تست فیزیکی، مزایایی برای شرکتهای فعال در حوزه تحقیق و توسعه (R&D) فراهم میکنند.
- هزینه اولیه: کلاسترها و سوپر کامپیوترهای داخلی HPC هزینههای اولیه بالایی دارند. با در نظر گرفتن هزینه تجهیزات، نیروی کار، نرمافزار و پیکربندی، HPC داخلی برای بسیاری از سازمانها دور از دسترس است.
- مصرف انرژی: هزینههای انرژی نصب سوپر کامپیوترها در محل بسیار بالا است. برای شرکتهایی که به مسائل زیستمحیطی اهمیت میدهند، مصرف انرژی HPC میتواند با اجرای پردازشهای فوق سریع روی ابر پایدار باشد.
- نگهداری: HPC زمانی که روی آخرین نسل از سختافزارها و نرمافزارهای بهینهشده اجرا شود، بهترین عملکرد را خواهد داشت. نگهداری کلاستر HPC داخلی یا آپدیت سوپر کامپیوتر برای اطمینان از عملکرد بهینه، هزینههای همیشگی و زیادی برای شرکت خواهد داشت.
آشنایی با کاربردهای HPC
اپلیکیشنهای HPC رفته رفته بهطور عمومی با اپلیکیشنهای هوش مصنوعی و بهطور خاص با اپلیکیشنهای یادگیری ماشین و یادگیری عمیق مترادف شدهاند. این اپلیکیشنهای HPC نوآوری مداوم در موارد زیر را به همراه دارند:
- خدمات درمانی، ژنومیک و علوم زیستی: اولین تلاش برای توالیسازی ژنوم انسان ۱۳ سال طول کشید. امروزه سیستمهای HPC میتوانند این کار را در کمتر از یک روز انجام دهند. سایر اپلیکیشنهای HPC در حوزه خدمات درمانی و علوم زیستی شامل کشف و طراحی دارو، تشخیص سریع سرطان و مدلسازی مولکولی میشود.
- خدمات مالی: از جمله کاربردهای HPC در حوزه خدمات مالی میتوان به خودکارسازی معاملات، تشخیص تقلب و همچنین تقویت اپلیکیشنهایی در شبیهسازی Monte Carlo و سایر روشهای تحلیل ریسک اشاره کرد.
- دولت و دفاع: پیشبینی آبوهوا و مدلسازی اقلیمی از جمله کاربردهای در حال گسترش HPC هستند که هر دو شامل پردازش مقادیر زیادی از دادههای هواشناسی تاریخی و میلیونها تغییر روزانه در نقاط داده مرتبط با آبوهوا میشوند. تحقیقهای انرژی و کارهای اطلاعاتی از جمله کاربردهای دیگر HPC در حوزه دولت و دفاع است.
- انرژی: کاربردهای HPC مرتبط با انرژی در بعضی از موارد با دولت و دفاع همپوشانی دارد. از جمله کاربردهای HPC در حوزه انرژی میتوانیم به پردازش دادههای لرزهای، مدلسازی و شبیهسازی مخزن، تجزیه و تحلیل مکانی، شبیهسازی باد و نقشهبرداری زمین اشاره کنیم.
راهنمای شروع کار با HPC
در این قسمت قصد داریم به ارائه نکاتی برای شروع کار با HPC و انجام پردازشهای فوق سریع بپردازیم:
- با اصول معماری کامپیوتر، سیستمعاملها و زبانهای برنامهنویسی مخصوص پردازشهای فوق سریع (مانند C، C++، Fortran و Python) آشنا شوید.
- درباره مفاهیم محاسبات توزیعشده و موازی از جمله الگوریتمهای موازی، ارتباطات بینفرایندی و همگامسازی مطالعه کنید.
- با ابزارها و سیستمهای پردازش فوق سریع مانند کلاسترها، پردازندههای گرافیکی (GPU) و رابط فرستادن پیام (MPI) کار کنید. شما میتوانید از منابع آنلاین استفاده کرده یا شبیهسازیها را روی کلاسترهای پردازش عمومی اجرا کنید.
- از مقالات و کتابهای مرتبط با این حوزه غافل نشوید تا در مورد آخرین پیشرفتها و کاربردهای واقعی پردازشهای فوق سریع باخبر باشید.
- برای رسیدن به درک جامعتری از این حوزه، دورههای آنلاین را بگذرانید یا در رشتههای مرتبط مانند علوم کامپیوتر یا مهندسی تحصیل کنید.
- برای بهبود مهارتهای عملی خود در چالشهای کدنویسی و هکاتونهای متمرکز بر پردازشهای فوق سریع شرکت کنید.
- با پیوستن به انجمنهای آنلاین و شرکت در ورکشاپها و کنفرانسهای HPC میتوانید با متخصصان فعال در این حوزه در ارتباط باشید و از آخرین پیشرفتها باخبر شوید.
منبع: IBM / Google cloud / Nvidia