پرش به محتویات

مفاهیم و منابع Slurm

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

چرا از Slurm استفاده می‌کنیم؟

JupyterLab برای کار تعاملی، تست کد و تحلیل مناسب است؛ اما اجرای سنگین و طولانی داخل JupyterLab ممکن است باعث کندی، قطع Session یا مصرف نامناسب منابع شود. Slurm کمک می‌کند اجرای محاسبات قابل پیگیری، منظم و منصفانه باشد.

نوع کار روش پیشنهادی
تست چند خط کد JupyterLab یا Terminal
اجرای کوتاه آزمایشی Slurm با منابع کم
اجرای چندساعته Slurm
اجرای چندروزه Slurm با Partition مناسب
اجرای چندین ورودی Slurm Array Job
پردازش داده بزرگ Slurm

مفاهیم اصلی

مفهوم توضیح
Job کاری که به Slurm ارسال می‌کنید
Job ID شماره اختصاصی هر Job
Partition صف اجرای Job، مثل short، normal، long
Node سرور محاسباتی که Job روی آن اجرا می‌شود
CPU/Core واحد پردازشی موردنیاز
Memory/RAM حافظه موردنیاز
Walltime حداکثر زمان مجاز اجرای Job
Account حساب Slurm برای ثبت مصرف منابع

Partitionهای رایج سامانه

Partition کاربرد
short تست‌های کوتاه و سریع
normal اجرای عمومی و پیش‌فرض
long کارهای طولانی‌تر
bigmem کارهای نیازمند حافظه زیاد

انتخاب ساده

برای بیشتر کاربران، شروع با normal مناسب است. برای تست‌های خیلی کوتاه از short و برای کارهای طولانی از long استفاده کنید.

فرمت زمان

Slurm زمان را معمولاً به شکل ساعت، دقیقه و ثانیه یا روز-ساعت می‌گیرد.

مثال معنی
00:10:00 ده دقیقه
02:00:00 دو ساعت
1-00:00:00 یک روز
7-00:00:00 هفت روز
#SBATCH --time=02:00:00

تفاوت ntasks و cpus-per-task

برای بیشتر برنامه‌های ساده Python یا MATLAB، این حالت کافی است:

#SBATCH --nodes=1
#SBATCH --ntasks=1
#SBATCH --cpus-per-task=2

یعنی Job شما روی یک نود اجرا می‌شود، یک Task دارد و برای همان Task دو CPU رزرو می‌کند.

گزینه کاربرد
--nodes تعداد نودهای موردنیاز
--ntasks تعداد Task یا Process
--cpus-per-task تعداد CPU برای هر Task

حافظه

حافظه را با --mem مشخص می‌کنید:

#SBATCH --mem=4G

اگر حافظه کمتر از نیاز برنامه باشد، Job ممکن است با خطای حافظه متوقف شود. اگر حافظه خیلی زیاد درخواست کنید، ممکن است Job دیرتر وارد اجرا شود.

پیشنهاد اولیه برای منابع

نوع کار CPU RAM زمان
تست ساده 1 1G تا 2G 5 تا 15 دقیقه
تحلیل سبک 2 2G تا 4G 30 دقیقه تا 2 ساعت
تحلیل متوسط 2 تا 4 4G تا 8G چند ساعت
کار طولانی 2 تا 4 متناسب با داده چند روز

منابع زیاد همیشه بهتر نیست

اگر برنامه شما موازی نوشته نشده باشد، گرفتن CPU بیشتر الزاماً سرعت را زیاد نمی‌کند و فقط منابع کلاستر را اشغال می‌کند.