OpenHPC: ابزاری اپن‌سورس جهت افزایش سرعت و قدرت پردازش

OpenHPC: ابزاری اپن‌سورس جهت افزایش سرعت و قدرت پردازش

High Performance Computing (پردازش‌های فوق سریع) که به اختصار HPC گفته می‌شود، به مجموعه‌ای از کامپیوترهایی گفته می‌شود که به دسته‌هایی (کلاسترهایی) تقسیم شده‌اند تا سرعت و قدرت پردازش افزایش یابد و این در حالی است که این نوع از پردازش‌های کامپیوتری بیش از سخت‌افزار، به نرم‌افزارهایی که نود‌های مختلف این دسته (کلاستر) از کامپیوترها را به یکدیگر متصل و مدیریت کنند، نیاز دارد. گنو/لینوکس سیستم‌عامل مرسوم در حوزهٔ HPC است و بسیاری از پلتفرم‌های HPC از قابلیت‌های توسعهٔ این سیستم‌عامل بهره می‌برند که این قابلیت‌ها شامل نرم‌افزارهای کاربردی علمی، لایبرری‌ها و دیگر ابزارها می‌شوند.

با توسعه و رشد HPC، کارهای تکراری و دوباره کاری‌ها در بین پلتفرم‌های HPC که نرم‌افزارهای HPC را کامپایل می‌کردند، ظهور پیدا کرد (چرا که پیش از این وابستگی بین اجزای مختلف نرم‌افزارها، نصب این نرم‌افزارها را دشوار می‌کرد).

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

چشم‌انداز و ماموریت‌های OpenHPC
مأموریت پروژهٔ Open HPC فراهم کردن مرجعی از کامپوننت‌ها و بهترین راه‌کارهای اثربخش نرم‌افزارهای اپن‌سورس HPC است تا موانع دیپلوی، توسعه و استفاده از روش‌ها و ابزارهای HPC مدرن به حداقل برسد.

چشم‌انداز OpenHPC بدین صورت است که کامپوننت‌ها و بهترین راه‌کارهای اثربخش پروژهٔ OpenHPC می‌تواند نوآوری و کشف‌های جدید را مُیسر ساخته و به آن شتاب دهد. این کار از طریق گسترش دسترسی به روش‌ها و ابزارهای اپن‌سورس HPC در یک محیط منسجم انجام می‌شود که این محیط از جمعی از کاربران، توسعه‌دهندگان، محققان، مدیران و فروشندگان سیستم‌های HPC در جهان تشکیل شده است.

پیشینهٔ OpenHPC
پروژهٔ Open HPC از کنفراس بین‌المللی اَبَرپردازش (International Supercomputing) سال 2015  آغاز شد که در آن گفتگوهایی بین صاحب‌نظران و ذی‌نفعان اَبَرپردازش در خصوص منافع و مزایای یک تلاش جمعی در جهت ایجاد یک چارچوبی از منابع و سیستم‌های مدیریت نرم‌افزارهای HPC، انجام شد.

در این کنفرانس، نسخهٔ اولیه Open HPC 1.0 منتشر شد و بنیاد لینوکس رهبری فنی، بنیانگذاران و ساختار رسمی اداره پروژه مشارکتی Open HPC Collaborative Project را معرفی کرد.

OpenHPC چیست؟
Open HPC در واقع مجموعه‌ای از کامپوننت‌های نرم‌افزاری از پیش ساخته شده در محیط HPC را فراهم می‌کند که شامل ابزارهای به اصطلاح Provisioning، مدیریت منابع، لایبرری‌های I/O، ابزارهای برنامه‌نویسی و تنوعی از لایبرری‌های علمی می‌شود.

این پروژه از معماری‌ها و توزیع‌های مختلفی از سیستم‌عامل گنو/لینوکس پشتیبانی کرده و یک ریپازیتوری از پیکج‌های مختلف برای CentOS 7 و SUSE Linux Enterprise Server (SLES) 12 فراهم می‌کند (نسخهٔ OpenHPC v1.2 و نسخه‌های پس از آن برای معماری های x86_64 و aarch64 ساخته شده و نسخهٔ v.1.3.2 برای CentOS 7.3 و SLES 12 SP2 بیلد شده است).

یکی از مزیت‌های اصلی پروژهٔ OpenHPC این است که هیچ‌کس نیازی ندارد که کل مجموعهٔ OpenHPC را نصب کند، بلکه کاربران آن می‌توانند بسته به نیازهای خود در زمینهٔ HPC، یکی از کامپوننت‌ها را انتخاب و نصب کنند.

نرم‌افزار و مستندات این پروژه توسط اعضای پروژهٔ OpenHPC و مشارکت‌کنندگان خارجی در یک ریپازیتوری گیت که توسط گیت‌هاب میزبانی می‌شود، نگهداری می‌شوند. به منظور اطمینان از اینکه نرم‌افزارها و مستندات آن همان‌گونه که توضیح داده شدند کار می‌کنند، پروژهٔ OpenHPC یک سیستم یکپارچه‌سازی مستمر (Continuous Integration System) دارا است که از هماهنگی مجموعه‌ نرم‌افزارهای مختلف اطمینان حاصل می‌کند.

پروژهٔ OpenHPC این نکته را در نظر می‌گیرد که پلتفرم‌های HPC به چندین کامپایلری تکیه دارند که با رابط‌های باینری نرم‌افزارهای کاربردی (Application Binary Interface) و رابط‌های انتقال پیام (Message Passing Interfaces) خواه سازگاری یا حتی ناسازگاری دارند. 

پکیج‌های نرم‌افزاری OpenHPC      
پروژهٔ OpenHPC بسته‌های نرم‌افزاری خود را به حوزه‌هایی کاربردی تقسیم‌بندی کرده که هرکدام چندین کامپوننت را به شرح زیر در بر می‌گیرند:

- Provisioning: Warewulf, xCAT
- Resource management: Slurm, Munge, PBS Professional
- Runtimes: OpenMP, OCR, Singularity
- Numerical/scientific libraries: GSL, FFTW, Metis, PETSc, Trilinos, Hypre, SuperLU, Mumps, OpenBLAS, Scalapack
- I/O libraries: HDF5, NETCDF, Adios
- Compilers: GCC, LLVM
- MPI families: MVAPICH2, Open MPI, MPICH
- Performance tools: PAPI, IMB, mpiP, pdtoolkit, TAU, Scalasca, ScoreP, SIONLib

نسخه جدیدتر OpenHPC (نسخهٔ 1.3.3) که در سال ۲۰۱۶ منتشر شد شامل بسته‌های جدید و بسته‌های نرم‌افزاری موجود می‌شود (دانلود آخرین نسخه‌ٔ پروژه‌های OpenHPC).

منبع


محمدرضا شرع‌پسند