我正在使用我部门的计算集群与Sun Grid Engine。
当我必须运行多个R作业时, 我经常编写名为s01.sh,s02.sh,...,s50.sh的shell脚本文件,其中包含'R CMD BATCH r01.r','R CMD BATCH r02.r',...,'R CMD BATCH r50.r'作为其内容。
然后我打开'PUTTY',登录,然后输入'qsub s01.sh','qsub s02.sh'....等等。
如果有数百个工作,手动输入数百个工作是一项真正的工作。 有没有办法同时运行这个多个'qsub'命令?
答案 0 :(得分:1)
我认为您只需要按顺序运行qsub
命令,因为qsub
本身应该相当快。 (提交的命令可能会并行运行。)
你只需要一个循环。
假设您已经创建了r*.r
文件,使用小型shell脚本很容易做到:
#!/bin/bash
for file in r*.r ; do
script=$(echo $file | sed 's/^r/s/;s/\.r$/.sh/')
(
echo "#/bin/sh"
echo "R CMD BATCH $file"
) > $script
chmod +x $script
qsub $script
done
答案 1 :(得分:1)
我假设要运行的脚本位于当前文件夹中。
for file in s*.sh; do; qsub $file; done