如何将CONDOR的队列号输入到您的CONDOR作业中
我想我有一个简单的问题,因为我在网上上下搜索,找不到其他人问这个问题: 我的大学有一个秃鹰学校。我想对同一代码重复运行几次(例如100次)。我的R代码有一个将结果存储在文件中的例程,即:如何将CONDOR的队列号输入到您的CONDOR作业中,r,process,queue,condor,R,Process,Queue,Condor,我想我有一个简单的问题,因为我在网上上下搜索,找不到其他人问这个问题: 我的大学有一个秃鹰学校。我想对同一代码重复运行几次(例如100次)。我的R代码有一个将结果存储在文件中的例程,即: write.csv(res, file=paste(paste(paste(format(Sys.time(), '%y%m%d'),'res', queue, sep="_"), sep='/'),'.csv',sep='',collapse='')) res是我的结果(一个data.frame),我指出这
write.csv(res, file=paste(paste(paste(format(Sys.time(), '%y%m%d'),'res', queue, sep="_"), sep='/'),'.csv',sep='',collapse=''))
res是我的结果(一个data.frame),我指出这个文件包含带有“res”的结果,最后我想添加这个计算的队列号(否则文件会被替换,不是吗?)。它应该看起来像:140109_res_1.csv,140109_res_2.csv
我向condor提交的文件如下所示:
universe = vanilla
executable = /usr/bin/R
arguments = --vanilla
log = testR.log
error = testR.err
input = run_condor.r
output = testR$(Process).txt
requirements = (opsys == "LINUX") && (arch == "X86_64") && (HAS_R_2_13 =?= True)
request_memory = 1000
should_transfer_files = YES
transfer_executable = FALSE
when_to_transfer_output = ON_EXIT
queue 3
我想知道如何将“队列”号输入我的R代码?我尝试了一个简单的例子
print(queue)
print(Queue)
但找不到名为queue或queue的对象。有什么建议吗?
最美好的祝福,
马可好的,我解决了这个问题。事情是这样的:
Marco如果是for循环,如何重复代码,然后在名称中添加
i
。我使用的另一个选项是将时间添加到文件名中,这样我就知道哪个是在哪个之前创建的(尽管它在文件的属性中)我得到了不同的文件没有被覆盖。好吧,也许我的想法是错误的。我有一个内部循环和所有内容的计算(不能是子集),我想重复这个计算N次。因此,我想我应该告诉condor在N台机器上执行这个计算(使用队列N
).这是错误的方式吗?对不起,我想我误解了这个问题,代码是关于condor
而不是R的,尽管它运行一个R程序。关于它,我忍不住也对从另一种语言到R的输入感兴趣…啊,是的,对不起。我更改了问题的标题,让它更明显。无论如何,谢谢。我对condor eit没有任何想法但将参数传递到R脚本通常很简单。也许这有助于:
> run <- commandArgs(TRUE)
> run
[1] "0"
> class(run)
[1] "character"
> try(as.numeric(run))
[1] 0
> try(run <- as.numeric(paste(run, collapse='')) )
> try(print(run))
[1] 0
> try(write(run, paste(run,'csv', sep='.')))