我经常想在Grid Engine集群上启动一组完全不相关(“令人尴尬”并行)的作业,以实现负载平衡。
我现在做的是,我为每个作业生成一个Bash脚本,然后分别提交每个作业,全部由我写的Perl脚本控制。
如果我只将所有作业放入一个文件,一行一个作业,那么Grid Engine将按顺序执行除了该点之外的作业。
我有什么方法可以只有一个文件,并告诉Grid Engine它应该并行执行每一行/作业吗?
基本上我想要Grid Engine阵列作业。但是阵列作业的问题是,只有当每个作业之间的变化元素是数字或数组中的索引时,它们才有效,并且如果这个数字/索引是均匀间隔的话。但我所说的工作完全不相关,并且没有共享模式。
答案 0 :(得分:0)
使用中等强大的解释器提交数组作业,将$ SGE_TASK_ID转换为您想要的任何内容:
#$ -t 1-3
#$ -S /bin/bash
case $SGE_TASK_ID in
1)echo "I'm a teapot short and stout";;
2)cat /etc/passwd;;
3)touch ~/job3run;;
esac