Slurm berhenti memproses #SBATCH
arahan pada baris pertama kode yang dapat dieksekusi dalam skrip. Untuk pengguna yang memiliki #SBATCH
arahan tidak tergantung pada kode yang mereka coba jalankan di atas arahan tersebut, cukup letakkan #SBATCH
baris di bagian atas.
Lihat jawaban lain untuk solusi/solusi jika, seperti OP, opsi sbatch Anda bergantung pada perintah yang Anda tempatkan di atasnya.
Skrip batch mungkin berisi opsi yang diawali dengan "#SBATCH" sebelum perintah yang dapat dieksekusi dalam skrip . sbatch akan berhenti memproses arahan #SBATCH lebih lanjut setelah non-comment non-whitespaceline pertama tercapai dalam skrip.
Dari dokumen sbatch, penekanan saya.
Ini tidak akan berhasil. Apa yang terjadi saat Anda menjalankan
sbatch myscript.sh
apakah itu slurm mem-parsing skrip untuk baris #SBATCH khusus itu, menghasilkan catatan pekerjaan, menyimpan skrip batch di suatu tempat. Skrip batch dijalankan hanya nanti saat pekerjaan berjalan.
Jadi, Anda perlu menyusun alur kerja Anda dengan cara yang sedikit berbeda, dan terlebih dahulu menghitung jumlah proses yang Anda perlukan sebelum mengirimkan pekerjaan. Perhatikan bahwa Anda dapat menggunakan sesuatu seperti
sbatch -n $numProcs myscript.sh
, Anda tidak perlu membuat skrip secara otomatis (juga, mpirun seharusnya bisa mendapatkan jumlah procs dalam alokasi Anda secara otomatis, tidak perlu menggunakan "-np").