我可以向SLURM提交“单线”吗?
使用LSF中的bsub
和标准Linux实用程序xargs
,我可以轻松地提交一个单独的作业来解压缩目录中的所有文件:
ls *.gz | sed 's/.gz$//g' | xargs -I {} bsub 'gunzip -c {}.gz > {}'
使用SLURM,我认为
srun
或sbatch
是可行的,但无济于事:ls *.gz | sed 's/.gz$//g' | xargs -I {} srun 'gunzip -c {}.gz > {}'
gzip: srun: error: compute-node-01: task 0: Exited with exit code 1
stdin: unexpected end of file
ls *.gz | sed 's/.gz$//g' | xargs -I {} sbatch 'gunzip -c {}.gz > {}'
sbatch: error: Unable to open file gunzip -c naive_S1_L001_R1_001.fastq.gz > naive_S1_L001_R1_001.fastq
我从LSF listed as equivalent看到
bsub
从SLURM看到sbatch
,但是到目前为止,它们似乎只相当于提交脚本文件: SLURM LSF
-------------------- ------------------
Job Submission sbatch [script_file] bsub [script_file]
还有其他方法可以使用SLURM提交“单线”作业吗?
最佳答案
尝试使用sbatch
的wrap选项。类似于以下内容:
ls *.gz | sed 's/.gz$//g' | xargs -I {} sbatch --wrap="gunzip -c {}.gz > {}"
在
sbatch
的手册页中:--wrap=<command string>
Sbatch will wrap the specified command string in a simple "sh" shell
script, and submit that script to the slurm controller. When --wrap is
used, a script name and arguments may not be specified on the command
line; instead the sbatch-generated wrapper script is used.