Skip
Cأكاديمية CADD

L20 · 20 دقيقة

Slurm وتقديم الوظائف

مورد، زمن، مسار.

البرمجةالديناميكا الجزيئية

أهداف التعلّم

  • كتابة طلب وظيفة مفاهيمي: اسم، زمن، GPU، مسار العمل.
  • تتبع الوظائف دون قتل وظائف الآخرين.
  • حفظ رقم الوظيفة مع hash البروتوكول.

الجدولة جزء من المنهج

Slurm يوزّع وظائف العنقود. تطلب موارد: زمن جدار، عدد المهام، GPUs. الطلب الخيالي يُؤجَّل؛ الطلب الصادق يُشغَّل. السكربت يحمّل modules، ينتقل إلى الدليل، يشغّل mdrun، ويكتب إلى مسار تحت مشروعك لا /tmp الممسوح.

#SBATCH --job-name=md-ligA
#SBATCH --time=24:00:00
#SBATCH --ntasks=1
#SBATCH --cpus-per-task=8
#SBATCH --gres=gpu:1

الغرض: ترويسة مفاهيمية شائعة لوظيفة GPU واحدة — الأسماء الدقيقة للقسم قد تختلف.

المُدخل: ملف سكربت يُقدَّم بـ sbatch.

المُخرج: رقم وظيفة من المجدول.

المعنى: --time زمن جدار لا زمن فيزيائي للمحاكاة. إن لم تكفِ تُقتل الوظيفة.

أخطاء شائعة: gres غير مسموح في القسم؛ أو طلب GPU دون أن يفهمه المحرك فينتظر إلى الأبد.

sbatch run.slurm && squeue -u $USER

الغرض: تقديم الوظيفة ومشاهدة جدولك.

المُدخل: سكربت صالح في الدليل الصحيح.

المُخرج: معرف وظيفة ثم صف في الطابور.

المعنى: PD انتظار، R تشغيل، CG إنهاء. تعلم رموز موقعك.

أخطاء شائعة: Invalid account أو partition — مشكلة سياسة لا فيزياء.

لماذا؟ — لماذا يُذكر رقم الوظيفة في دفتر المختبر؟

لربط الأرقام في الورقة بسجل العنقود: أي عقدة، أي زمن، أي ملف خرج، وأي إيداع Git.

ماذا لو؟ — ماذا لو طلبت 7 أيام لمسار 10 ns ينتهي في ساعتين؟

تُعاقب أولوية الطابور في كثير من المواقع. قِس ns/day أولاً واطلب هامشاً معقولاً لا خيالاً.

تمرين

اكتب أربعة أسطر ترويسة لثلاث نُسخ كوظائف منفصلة (مفهوماً) ولماذا منفصلة.

مواضيع مرتبطة