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

خطاهای Job و Slurm

این صفحه برای زمانی است که Job شما در صف می‌ماند، سریع Fail می‌شود، خروجی نمی‌دهد یا با خطاهایی مثل TIMEOUT و OUT_OF_MEMORY تمام می‌شود.

وضعیت Jobهای خودتان

squeue -u $USER

سابقه Jobهای امروز

sacct -u $USER --starttime today

بررسی یک Job خاص

sacct -j JOBID --format=JobID,JobName,Partition,State,ExitCode,Elapsed,NodeList

جزئیات بیشتر:

sacct -j JOBID --format=JobID,JobName,State,ExitCode,Elapsed,AllocCPUS,ReqMem,MaxRSS,NodeList

Job در حالت PENDING مانده است

اگر Job شما Pending است:

scontrol show job JOBID

دلایل رایج:

دلیل معنی راهکار
Resources منابع آزاد کافی نیست صبر کنید یا منابع کمتری درخواست کنید
Priority Jobهای دیگر اولویت بالاتری دارند صبر کنید
PartitionTimeLimit زمان انتخابی با صف سازگار نیست زمان یا Partition را اصلاح کنید
ReqNodeNotAvail نود موردنیاز در دسترس نیست درخواست نود خاص را حذف کنید

Job سریع Fail می‌شود

اگر Job بلافاصله Fail شد، معمولاً یکی از این موارد علت است:

علت بررسی
مسیر اشتباه pwd و خط cd در فایل Slurm
فایل ورودی وجود ندارد ls -lah
دستور پیدا نمی‌شود which COMMAND
کتابخانه Python نصب نیست بررسی venv
Permission مشکل دارد ls -lah
فایل .err خطا دارد cat logs/*.err

خطای TIMEOUT

یعنی زمان Job تمام شده است.

#SBATCH --time=04:00:00

راهکار:

  1. با داده کوچک‌تر تست کنید.
  2. زمان را منطقی افزایش دهید.
  3. اگر کد گیر کرده، قبل از افزایش زمان مشکل کد را حل کنید.

خطای OUT_OF_MEMORY

یعنی حافظه درخواست‌شده کافی نبوده است.

#SBATCH --mem=8G

راهکار:

  1. مصرف RAM را کاهش دهید.
  2. داده را مرحله‌ای پردازش کنید.
  3. حافظه را با مقدار منطقی افزایش دهید.
  4. برای کارهای خیلی پرحافظه، Partition مناسب را انتخاب کنید.

خطای command not found

which python3
which matlab-slurm
module avail
module list

اگر از Python venv استفاده می‌کنید:

source .venv/bin/activate
python script.py

خطای ModuleNotFoundError

source .venv/bin/activate
pip install PACKAGE_NAME
python script.py

فایل‌های خروجی را پیدا نمی‌کنم

اگر در فایل Slurm چنین خط‌هایی دارید:

#SBATCH --output=logs/job-%j.out
#SBATCH --error=logs/job-%j.err

پس خروجی‌ها در پوشه logs هستند:

ls -lah logs

قبل از ارسال Job بزرگ

همیشه ابتدا با زمان کم، داده کوچک و منابع کم تست کنید. بعد از اطمینان، Job اصلی را ارسال کنید.