当R源本身被提交给pbs的作业调用时,无法将作业提交给R中的pbs

时间:2018-11-26 11:31:14

标签: r unix pbs qsub

假设我在目录中有以下文档,

> dir()
# [1] "master.job"  "master.R"  "P1.job"  "P2.job"  "P1.R"  "P2.R"

master.job提交给pbs来排序master.RP1.job到源P1.RP2.job到源P2.R等...源master.R会不时创建新的Px.jobPx.R,并提交使用命令(在R中)system("qsub Px.job")创建的新作业。 master.R充当顶层监视过程,并确定何时创建和提交新作业。

使用SSH连接到群集时,我可以简单地在控制台中调用R,然后使用以下命令:

> source("master.R")

该过程运行没有问题。但是通过这种方式,我将不得不保持自己的PC处于打开状态,因为一旦断开与服务器的连接,该进程将被终止。因此,出于我的目的,我需要将作业master.job提交给pbs。但是,当我这样做时,到达步骤system("qsub Px.job")时遇到以下错误:

  

socket_connect_unix失败:15137

     

qsub:无法连接到服务器(空)(errno = 15137)无法连接到trqauthd

有什么建议吗?很明显,我可以通过R控制台(system("qsub Px.job")source("master.R"))提交作业,但是为什么不能通过另一个R提交相同的作业(Px.job)呢?进程(master.R被提交的作业(master.job)调用时?


我很确定有人会问为什么我需要做这样的事情。

开始时,我只有一份工作要提交:P.job,该工作源于P.RP.R是可重复调用另一个专有程序X的源代码。程序X有一个错误,在当前版本中未解决,该错误会在某些时候永久冻结 。冻结后,P.R将无法检测到(我也无法对程序X进行任何更改)。因此,我需要向pbs提交另一个单独的独立进程,该进程可以(1)在特定的磁盘I / O时终止(使用qdel)已提交的作业P.job(并因此杀死P.R)。目录在特定时间内不存在,(2)检查进度,并且(3)根据进度重新提交另一个P.job(源另一个P.R)。

0 个答案:

没有答案