【问题标题】:Error attempting doSMP example尝试 doSMP 示例时出错
【发布时间】:2011-10-11 06:39:24
【问题描述】:

我正在尝试运行 doSMP 小插图中的简单示例,但出现以下错误。首先,我不确定如何存在现有的 doSMP 会话,因为我在重新启动机器后立即执行了以下代码。此外,关于包 doSMP 不存在的重复错误,但 library(doSMP) 调用工作正常。帮忙!

> librayr(doSMP)
Error: could not find function "librayr"
> library(doSMP)
Loading required package: foreach
Loading required package: iterators
Loading required package: codetools
foreach: simple, scalable parallel programming from Revolution Analytics
Use Revolution R for scalability, fault tolerance and more.
http://www.revolutionanalytics.com
Loading required package: revoIPC
Warning messages:
1: package 'doSMP' was built under R version 2.13.1
2: package 'foreach' was built under R version 2.13.1
3: package 'revoIPC' was built under R version 2.13.1
> w <- startWorkers(workerCount=4)
Warning messages:
1: In startWorkers(workerCount = 4) :
  there is an existing doSMP session using doSMP1
2: In startWorkers(workerCount = 4) :
  there is an existing doSMP session using doSMP2
> Error in library(doSMP) : there is no package called 'doSMP'
Calls: suppressMessages -> withCallingHandlers -> library
Execution halted
Error in library(doSMP) : there is no package called 'doSMP'
Calls: suppressMessages -> withCallingHandlers -> library
Execution halted
Error in library(doSMP) : there is no package called 'doSMP'
Calls: suppressMessages -> withCallingHandlers -> library
Execution halted
Error in library(doSMP) : there is no package called 'doSMP'
Calls: suppressMessages -> withCallingHandlers -> library
Execution halted

【问题讨论】:

  • 这不是一个真正的编程问题...也许可以试试超级用户?
  • 我同意,这不是编程问题。但是,我认为这是重复的。 stackoverflow.com/questions/5197619/…
  • 我不认为这是重复的......不同的错误/警告与“没有名为'doSMP'的包”
  • 您是否尝试过按照 Joris 的建议移除工人?
  • 是的,很遗憾这不起作用。

标签: r parallel-processing


【解决方案1】:

每当您调用 startWorkers 函数时,doSMP 都会创建一个任务队列。如果你在退出 R 会话之前没有调用 stopWorkers(),那么用于启动任务队列的进程间通信资源在退出 R 之后仍然存在。

您可以按如下方式删除任务队列:

>rmSessions(all.names=TRUE)
attempting to delete qnames: doSMP1, doSMP2, doSMP3, doSMP4, doSMP5, doSMP6, doSMP7, doSMP8
successfully deleted queues: doSMP1, doSMP2, doSMP3, doSMP4, doSMP5

现在对 startWorkers() 的任何后续调用都不应产生任何警告。这记录在“rmSessions”的帮助文件中。

斯蒂芬·韦勒
革命分析技术支持工程师
革命分析公司
1505 Westlake Ave North 套房 300
华盛顿州西雅图市 98109

【讨论】:

  • 这似乎不起作用。我已经尝试根据文档调用 rmSessions(all.names=TRUE) 并且每当我跟进对 startWorkers 的调用时,都会被告知存在现有会话。我也尝试删除与 doSMP 关联的临时文件夹,并尝试重新启动 R,但没有成功。有一次我没有收到任何警告,我尝试了这个简单的例子,然后 R 被锁定了。我可以让 doSNOW 正常工作,所以我不认为这是机器问题。
  • @SFun28:我使用 R2.13.1 也有同样的体验。无法让它工作并且 rmSessions 锁定了 R 会话。甚至尝试自己编译 revoIPC - 没有任何变化
  • f3lix - 很高兴听到有同样问题的其他人的来信。我强烈推荐doSNOW。
【解决方案2】:

结束这个问题 - 这个包太难用了。如果其他人已经让它可靠地工作,那么请回复,我将取消将此帖子标记为答案。

【讨论】:

    猜你喜欢
    • 2013-01-26
    • 1970-01-01
    • 2016-02-03
    • 2016-03-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多