r - 从 R 脚本中向从节点提交作业?

标签 r parallel-processing hpc qsub torque

获取myscript.R使用作业调度程序在集群从节点上运行(特别是 PBS)

目前,我使用以下命令将 R 脚本提交到从节点

qsub -S /bin/bash -p -1 -cwd -pe mpich 1 -j y -o output.log ./myscript.R

R 中是否有允许我在头节点上运行 myscript.R 并将单个任务发送到从节点的函数?就像是:
foreach(i=c('file1.csv', 'file2.csv', pbsoptions = list()) %do% read.csv(i)

更新: qsub 命令的替代解决方案是删除 #/usr/bin/Rscript来自 myscript.R 的第一行并直接调用它,正如@Josh 指出的那样
qsub -S /usr/bin/Rscript -p -1 -cwd -pe mpich 1 -j y -o output.log myscript.R

最佳答案

如果您想从 R 脚本中提交作业,我建议您查看“BatchJobs”包。这是描述文件中的引用:

Provides Map, Reduce and Filter variants to generate jobs on batch computing systems like PBS/Torque, LSF, SLURM and Sun Grid Engine.



BatchJobs 似乎比以前的类似包(例如 Rsge 和 Rlsf)更复杂。有注册、提交和检索作业结果的功能。这是一个简单的例子:
library(BatchJobs)
reg <- makeRegistry(id='test')
batchMap(reg, sqrt, x=1:10)
submitJobs(reg)
y <- loadResults(reg)

您需要配置 BatchJobs 以使用您的批处理排队系统。 submitJobs“资源”参数可用于为作业请求适当的资源。

如果您的集群不允许长时间运行的作业,或者它严重限制了长时间运行的作业数量,则此方法非常有用。 BatchJobs 允许您通过将您的工作分解为多个工作同时隐藏与手动执行相关的大部分工作来绕过这些限制。

文档和示例位于 the project website .

关于r - 从 R 脚本中向从节点提交作业?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13142882/

相关文章:

c - Scalapack 返回错误答案

linux - 如何能够 "move"移动到新机器时脚本所需的所有必要库

error-handling - 作业崩溃后复制输出

R - 打乱列表并保留元素大小

R并行计算和僵尸进程

multithreading - 检查序列是否排序的并行算法

.net - Task.WaitAll 的线程局部对象

r - 我们可以将 R 脚本或任何第三方软件安装到 CDH5(Hadoop 的 Cloudera 发行版)吗

r - PIL 逊相关性 "Stratified"按分类变量

r - 使用 R 将一列提取为行,保留其他列