在 R 中设置 PSOCK 集群的 Niceness
Set Niceness of PSOCK cluster in R
我想提高集群作业的友好度。以下代码成功:
> cl <- makePSOCKcluster(rep('localhost', 2))
> clusterEvalQ(cl = cl, rnorm(3))
[[1]]
[1] -0.6452848 -0.9899609 0.3083131
[[2]]
[1] 1.1687733 -0.1930413 1.1576510
然而,这不是。
cl <- makePSOCKcluster(names = rep('localhost', 8), renice = 15)
nice: +15: No such file or directory
我可以使用以下代码在集群创建后设置 niceness:
clusterEvalQ(cl = cl, tools::psnice(value = 15))
阅读 makePSOCKcluster
的文档后,我不确定我在集群创建步骤中做错了什么,并且一直无法找到问题所在。我如何创建一个集群并同时设置工作线程的 niceness?
我认为这是 "parallel" 包中的错误。当您使用 makePSOCKcluster "renice" 选项时,它使用的 "nice" 命令形式不适用于 bash,但我相信它适用于 csh/tcsh。您可以使用 "manual=TRUE" 选项查看生成的命令:
> library(parallel)
> cl <- makePSOCKcluster(2, renice=15, manual=TRUE)
Manually start worker on localhost with
nice +15 '/home/sw/R/sources/R-3.3.0/bin/Rscript' --default-packages=datasets,utils,grDevices,graphics,stats,methods -e 'parallel:::.slaveRSOCK()' MASTER=localhost PORT=11379 OUT=/dev/null TIMEOUT=2592000 XDR=TRUE
如果您尝试从 bash 执行此操作,您将收到与您报告的相同的错误消息。 bash 的语法应该是:
$ nice -n 15 '/home/sw/R/sources/R-3.3.0/bin/Rscript' ...
我想提高集群作业的友好度。以下代码成功:
> cl <- makePSOCKcluster(rep('localhost', 2))
> clusterEvalQ(cl = cl, rnorm(3))
[[1]]
[1] -0.6452848 -0.9899609 0.3083131
[[2]]
[1] 1.1687733 -0.1930413 1.1576510
然而,这不是。
cl <- makePSOCKcluster(names = rep('localhost', 8), renice = 15)
nice: +15: No such file or directory
我可以使用以下代码在集群创建后设置 niceness:
clusterEvalQ(cl = cl, tools::psnice(value = 15))
阅读 makePSOCKcluster
的文档后,我不确定我在集群创建步骤中做错了什么,并且一直无法找到问题所在。我如何创建一个集群并同时设置工作线程的 niceness?
我认为这是 "parallel" 包中的错误。当您使用 makePSOCKcluster "renice" 选项时,它使用的 "nice" 命令形式不适用于 bash,但我相信它适用于 csh/tcsh。您可以使用 "manual=TRUE" 选项查看生成的命令:
> library(parallel)
> cl <- makePSOCKcluster(2, renice=15, manual=TRUE)
Manually start worker on localhost with
nice +15 '/home/sw/R/sources/R-3.3.0/bin/Rscript' --default-packages=datasets,utils,grDevices,graphics,stats,methods -e 'parallel:::.slaveRSOCK()' MASTER=localhost PORT=11379 OUT=/dev/null TIMEOUT=2592000 XDR=TRUE
如果您尝试从 bash 执行此操作,您将收到与您报告的相同的错误消息。 bash 的语法应该是:
$ nice -n 15 '/home/sw/R/sources/R-3.3.0/bin/Rscript' ...