在LSF作业数组引用作业索引(Referencing job index in LSF job ar

2019-09-18 13:47发布

我想传递一个作业的指数在作业数组作为参数传递给另一个bash脚本。

 numSims=3 numTreatments=6 # uses numTreatments top rows of parameters.csv maxFail=10 j=1 while [ $j -le $numSims ]; do bsub -q someQueue -J "mySim[1-$numTreatments]%2" ./another_script.sh $LSB_JOBINDEX $j $maxFail let j=j+1 done 

这里的最终想法是提交,每个1,..., numTreatmentsnumSims作业(模拟)。 我想在同一时间(运行两个作业%2 )。 输出的格式为XX_indexNumber_simNumber,其中indexNumber 1,...,运行numTreatments和simNumber 1,..., numSims

理想的情况下,一切都提交了,因为这脚本的一部分将具有相同的作业ID。 这还没有设置正确,因为与同所有作业j被分配一个不同的作业ID。 我眼前的问题是,another_script.sh无法识别$LSB_JOBINDEX作为输入-它认为$j$maxFail作为第一和仅有的两个传递的参数。 当我把一些其他的变量来代替$LSB_JOBINDEX ,没有任何问题。 我究竟做错了什么?


编辑 -有些事情我已经试过: "$LSB_JOBINDEX" ${LSB_JOBINDEX}%II=$LSB_JOBINDEX; bsub ... $I $j $maxFail I=$LSB_JOBINDEX; bsub ... $I $j $maxFail

Answer 1:

从这个链接 :

上面的定义将推出不只是一个批处理作业,但100个作业,其中子作业特定的环境变量$ LSB_JOBINDEX得值表格1到100这个变量然后可以使每个子任务被处理的实际工作启动命令一起使用。

在你的情况,这意味着变量$LSB_JOBINDEX可从脚本中another_script.sh 。 你并不需要把它作为参数传递,而只是获得$LSB_JOBINDEX在您的脚本。



文章来源: Referencing job index in LSF job array
标签: bash jobs hpc lsf