2014-10-09 67 views
0

我正在尝试写作业阵列,以便各个作业在稍微不同的时间点开始。 (因为我唤起程序使用一天的时间精确到秒的随机种子,如果所有作业都在同一时间提交它会产生相同的结果。)PBS延迟执行作业阵列

下面是我使用的指令:

#!/bin/bash 
#PBS -N test 
#PBS -t 1-10     # Job array 
#PBS -a hhmm.ss    # Deferred execution 

echo Time is `date` >> test.out 

但我想-a被分开。我正在考虑编写一个小程序,以这种格式打印出随机数并将其提供给-a,但我不知道如何使-a取一个变量的选项。

欢迎解决其他任何行,唯一的要求是作业数组中的作业开始间隔随机时间间隔。

希望这是有道理的,如果不是,我会很乐意澄清。

+0

如果这是TORQUE 2.4或更高版本,您可以通过将#PBS -t 1-10更改为#PBS -t 1-10%1来强制执行任何作业。如果你可以编辑程序,我强烈建议使用不同的随机种子,因为有很多优秀的方法可以做到这一点。 – dbeer 2014-10-10 23:33:54

回答

0
#!/bin/bash 
#PBS -N test 
#PBS -t 1-10     # Job array 

sleep `expr $RANDOM % 60`  
echo Time is `date` >> test.out 

一位朋友建议在脚本开始时使用wait或sleep来让作业等待,然后再次启动。这个expr $ RANDOM%60可以在几秒钟内(小于60)将它们分开。注意你不再需要推迟执行(no -a指令)。