过去,我可以通过查看作业的日志文件来监视我们的Torque / PBS计算集群上的作业。我(或我正在使用的程序包)必须在某些时候进行了某些更改,以便作业中的错误不再记录在日志文件中。我无法弄清楚到底是什么。
library(future)
library(future.batchtools)
options(future.globals.maxSize = 2000*1024^2)
# login just once, deliver multiple jobs
login <- tweak(remote, workers = "XXX", persistent = FALSE)
qsub <- tweak(batchtools_torque, template = 'torque-lido.tmpl')
plan(list(login, qsub))
test %<-% { test2 %<-% {
message("Logged message")
cat("Not logged text")
warning("Logged warning")
stop("not logged error")
}
test2
}
我在日志文件中收到消息和警告。我根本听不懂猫的文字。我在R端收到错误,但我也希望将其记录下来。
反而我得到
### [bt]:作业成功终止[batchtools job.id = 1]
这似乎不正确吗?
我的模板文件如下
#!/bin/bash
<%
## Check some resources and set sane defaults
resources$walltime = assertString(resources$walltime)
resources$queue = assertString(resources$queue)
resources$memory = asInt(resources$memory, lower = 1L, upper = 1000L)
resources$ncpus = if (is.null(resources$ncpus)) 1L else asInt(resources$ncpus, lower = 1L)
resources$nodes = if (is.null(resources$nodes)) 1L else asInt(resources$nodes, lower = 1L)
job.name = assertString(resources$job.name)
## first string of queue, selected by walltime
queue = resources$queue
log.file = resources$log.file
-%>
#PBS -N <%= job.name %>
#PBS -l walltime=<%= resources$walltime %>,nodes=<%= resources$nodes %>:ppn=<%= resources$ncpus %>
#PBS -l mem=<%= resources$memory %>gb
#PBS -q <%= queue %>
#PBS -o $HOME/logs/
#PBS -e $HOME/logs/
#PBS -j oe
#PBS -m e
#PBS -d .
## export value of DEBUGME environemnt var to slave
export DEBUGME=<%= Sys.getenv("DEBUGME") %>
## run R
Rscript -e 'batchtools::doJobCollection("<%= uri %>")'
在我真正的问题中,我想通过brms监视长期运行的rstan fit的进度和错误。但是,采样过程消息不会打印在任何地方。我尝试切换各种选项(silent
,open_progress
),但这并没有改变任何内容。我得到的最后一条日志是采样开始之前的警告。
testbrms %<-% {
testbrms2 %<-%
{
model <- brms::brm(file = model_name, silent = FALSE, open_progress = TRUE,
formula = outcome ~ 1, data = testdf, cores = 1, iter = 2000)
}
}
有人有主意吗?