SLURM'ler srunile sbatchkomutlar arasındaki farkın ne olduğunu anlamaya çalışıyorum . Aşağıdaki sorulara özel cevaplar yerine genel bir açıklamadan memnun olacağım, ancak burada bir başlangıç noktası olabilecek ve aradığım şey hakkında bir fikir verebilecek bazı belirli kafa karışıklıkları var.
Belgelere göre , sruniş sbatchgöndermek içindir ve daha sonra icra edilmek üzere iş göndermek içindir, ancak pratik fark benim için net değil ve davranışları aynı görünüyor. Örneğin, her biri 2 CPU'lu 2 düğüme sahip bir kümem var. Eğer yürütürsemsrun testjob.sh & arka arkaya 5x bir işlemci irade yürütme olarak, kullanılabilir hale gelinceye kadar, bu güzel beşinci iş sıraya olacaktır sbatch testjob.sh.
Soruyu daha somut hale getirmek için, başlamak için iyi bir yer olabileceğini düşünüyorum: Biriyle yapabileceğim, diğeriyle yapamayacağım şeyler nelerdir ve neden?
Her iki komutun argümanlarının çoğu aynıdır. En alakalı olanlardır --ntasks, --nodes, --cpus-per-task, --ntasks-per-node. Bunlar birbirleriyle nasıl ilişkilidir ve srunvs için nasıl farklılık gösterir sbatch?
Belirli bir fark olduğunu sruneğer hataya neden olur testjob.shçalıştırılabilir izni ie sahip değildir chmod +x testjob.shoysa sbatchmutlu o çalışacaktır. Durumun böyle olmasına neden olan "kaputun altında" neler oluyor?
Belgelerde ayrıca komut dosyalarının sruniçinde yaygın olarak kullanılanlardan bahsedilir sbatch. Bu, şu soruyu doğurur: Birbirleriyle nasıl etkileşim kurarlar ve her birinin "kanonik" kullanım durumu nedir? Özellikle, srunkendi başına kullanır mıydım?
srungönderi metninin içini aramakla uğraşayım? Belki de bir "iş adımı" nın anlamı konusunda kafam karışmıştır. Örneğin,runjob.shiçeren bir komut dosyam varsa,#!/bin/bash srun myjob.sh(a)sbatch runjob.sh- (b)sbatch myjob.sh- (c)srun myjob.sh- (d) arasında pratik bir fark varsrun runjob.shmı? (Sonuncusu aptalca ama merak ediyorum)