swait(1) Slurm Commands swait(1)

swait - توقف تا تکمیل گام‌های در حال اجرا و گام‌های معلق --async یک کار

swait [OPTIONS] [jobid[_task] | s<sluid>]

دستور swait تا زمانی که هیچ گام در حال اجرا و هیچ گام معلق --async وجود نداشته باشد، اجرای فرآیند را متوقف و مسدود می‌کند. از swait در یک اسکریپت دسته‌ای (batch script) استفاده کنید تا منتظر تکمیل تمام گام‌های --async بمانید.

دستور swait مستقیماً با stepmgr ارتباط برقرار می‌کند؛ این دستور از slurmctld نظرسنجی (poll) نمی‌کند. در کارِ هدف باید stepmgr فعال شده باشد (بخش نیازمندی‌ها (REQUIREMENTS) را ببینید).

آرگومان مکانی می‌تواند یک شناسه کار عددی، یک تسکِ تکی از آرایه (مانند 1000_3)، یا یک SLUID (مانند s4SNKN57XZTE00) باشد. بازه‌های تسک، فهرست‌های تسک و آفست‌های مؤلفهٔ het-job (jobid+offset) پشتیبانی نمی‌شوند. هنگامی که هدف یک کار آرایه‌ای با بیش از یک تسک باشد، باید یک تسک مشخص با jobid_task انتخاب شود.

بدون آرگومان مکانی، swait ابتدا متغیر SLURM_JOB_SLUID را بررسی می‌کند و در صورت عدم وجود، به سراغ SLURM_JOB_ID می‌رود. این ویژگی به swait امکان می‌دهد درون یک اسکریپت دسته‌ای یا تخصیص تعاملی بدون آرگومان اجرا شود و به‌طور خودکار منتظر گام‌های کار دربرگیرنده بماند.

نمایش اطلاعات راهنما و خروج.
جلوگیری از نمایش پیام‌های اطلاعاتی در stderr. خطاها همچنان نمایش داده خواهند شد. با --verbose مانعة‌الجمع است.
حداکثر به مدت SECS ثانیه برای اتمام و تخلیهٔ گام‌های کار منتظر می‌ماند، سپس با وضعیت ۱ خارج می‌شود. SECS باید یک عدد صحیح غیرمنفی باشد. بدون --timeout یا با --timeout=0، دستور swait تا زمان اتمام گام‌ها به‌طور نامحدود مسدود می‌ماند.
نمایش یک پیام کوتاه دربارهٔ نحوهٔ استفاده و خروج.
افزایش پرگویی و توضیحات؛ می‌تواند برای جزئیات بیشتر چندین بار مشخص شود. با --quiet مانعة‌الجمع است.
نمایش اطلاعات نگارش و خروج.

کارِ هدف باید stepmgr را فعال داشته باشد؛ خواه در سطح کل سامانه از طریق SlurmctldParameters=enable_stepmgr در slurm.conf(5)، یا به ازای هر کار از طریق ارسال گزینهٔ --stepmgr به salloc(1)/sbatch(1). این موضوع را می‌توان با دستور scontrol show job <jobid> تأیید کرد؛ به دنبال عبارت StepMgrEnabled=Yes بگردید.

برخی از گزینه‌های swait ممکن است از طریق متغیرهای محیطی تنظیم شوند. این متغیرهای محیطی به همراه گزینه‌های متناظرشان در زیر فهرست شده‌اند. (نکته: گزینه‌های خط فرمان همواره بر این تنظیمات تقدم دارند.)

برای شناسایی کارِ تحت پایش در زمانی که هیچ آرگومان مکانی داده نشده است، استفاده می‌شود. بر SLURM_JOB_ID اولویت دارد.
برای شناسایی کارِ تحت پایش در زمانی که هیچ آرگومان مکانی داده نشده و SLURM_JOB_SLUID تنظیم نشده باشد، استفاده می‌شود.
محل قرارگیری فایل پیکربندی Slurm.

0
هیچ گام در حال اجرا و هیچ گام ناهمگام (--async) در انتظاری وجود ندارد.
1
مهلت زمانیِ --timeout پیش از اتمام گام‌ها به پایان رسید.
2
دستور swait با یک خطا مواجه شد.

اجرای چندین گام async از درون یک اسکریپت دسته‌ای (batch script) و مسدود ماندن تا اتمام آن‌ها. در صورتی که stepmgr در کل سامانه فعال باشد، می‌توان از پرچم --stepmgr صرف‌نظر کرد.

#!/bin/bash
#SBATCH -n 16
#SBATCH --stepmgr
srun --async -n 8 ./solve_a
srun --async -n 8 ./solve_b
swait

دستور swait تنها برای گام‌های --async است؛ اگر یک اسکریپت صرفاً دستورهای srun را از طریق پوسته به پس‌زمینه بفرستد، دستور درونی (builtin) wait در پوسته از پیش این حالت را پوشش می‌دهد و نیازی به swait نیست. استثنا زمانی است که یک اسکریپت هر دو را با هم ترکیب کند: ابتدا swait و سپس wait را اجرا کنید تا هم کارهای در انتظارِ stepmgr و هم فرآیندهای پس‌زمینهٔ پوسته به پایان برسند:

#!/bin/bash
#SBATCH -n 16
#SBATCH --stepmgr
srun -n 8 ./solve_a &
srun --async -n 8 ./solve_b
swait
wait

کپی‌رایت (c) 2026 NVIDIA CORPORATION & AFFILIATES. تمامی حقوق محفوظ است.

این فایل بخشی از Slurm است؛ یک برنامهٔ مدیریت منابع. برای جزئیات بیشتر، https://slurm.schedmd.com را ببینید.

اسلرم (Slurm) یک نرم‌افزار آزاد است؛ شما می‌توانید آن را تحت شرایط پروانه عمومی همگانی گنو (GNU General Public License) طبق آنچه توسط بنیاد نرم‌افزارهای آزاد منتشر شده، چه نگارش ۲ پروانه و چه (به انتخاب خودتان) هر نگارش بالاتری، بازتوزیع کرده یا اصلاح نمایید.

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

sacct(1), salloc(1), sbatch(1), scancel(1), scontrol(1), squeue(1), srun(1), slurm.conf(5)

Slurm Commands Slurm 26.05