gpt4 book ai didi

r - doRedis workers 在 windows 上立即关闭

转载 作者:IT王子 更新时间:2023-10-29 06:07:51 28 4
gpt4 key购买 nike

已解决——看下面。

我正在尝试在 Windows 7 上使用 R 运行 doRedis 并行后端。我在尝试 doRedis vignette 中的第一个示例时遇到了问题。 :

library('doRedis')
registerDoRedis('jobs')
startLocalWorkers(n = 2, queue = 'jobs', host = 'localhost')
...

这就是问题所在:首先,运行了两个 R.exe 进程并在任务管理器中可见,然后运行了两个 Rterm.exe 进程,它们加载了大约 250 MB 的数据(我预计这是我本地项目的 .Rprofile 文件中的库),然后立即关闭

I did run a few checks:

Redis 服务器似乎按预期工作,我可以通过运行来验证:

redisInfo()

并看到它确实收到了连接,并且客户端已连接。

此外,运行多个独立的 R session 并注册“作业”队列是可行的,即运行以下命令:

require('doRedis')
redisWorker('jobs')

然后通过输入在主 R session 中运行 MC 示例

foreach(icount(10), .combine = sum, .multicombine = TRUE, .inorder = FALSE) %dopar% 4*sum((runif(1e5)^2 + runif(1e5)^2)<1)/1e6

如宣传的那样工作——终端 session 报告事件,主 session 获取结果。\换行符

Hence, I need help to...

... 找出由主 R session 调用的工作进程立即关闭的原因。但是,我不知道从哪里开始。我知道该问题的可能解决方法,但如果能够以一种无忧无虑的方式启动它会方便得多。

谢谢!

解决方案

问题是 startLocalWorkers 命令调用的 R 进程不知道在这里寻找库。如果我在具有适当修改的库路径列表的 R session 中调用 redisWorker,一切正常。但是,如果我要求此 R session 启动新工作程序——一切都失败了。

解决方案是创建一个环境变量 R_USER_LIBS 来保存库文件夹的路径。一旦完成,一切都会完美运行。

RStudio 用户应该注意,每次修改环境变量都需要重新启动 RStudio,然后子 R 进程才能读取修改后的 R_LIBS_USER 的新值。

最佳答案

我建议您尝试使用 Rterm.exe 进行测试,而不是使用 Rgui 之类的东西,否则错误消息可能会丢失。当您执行 startLocalWorkers 时,您应该立即看到一堆写入标准输出的消息。如果您没有看到它们,您可能还遗漏了一些非常有用的错误消息。

此外,由于您能够在交互式 R session 中成功执行 redisWorker,您的 .Rprofile 中的某些内容可能会导致工作人员在由 startLocalWorkers 创建的非交互式 R session 中死亡。您可以通过创建执行 redisWorker 的 R 脚本并使用如下命令执行它来测试它:

R --slave -f worker.R

关于r - doRedis workers 在 windows 上立即关闭,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21189076/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com