[英]Unable to delete previous doSMP queues
我正在尝试使用doSMP,当我尝试w <- startWorkers(4)
,出现错误
1:在startWorkers(workerCount = 4)中:
现有一个使用doSMP1的doSMP会话
(实际上是doSMP1,... doSMP8)。 现在,当我尝试使用rmSessions('doSMP1')
删除它时,出现错误消息
尝试删除qnames:doSMP1
无法删除队列:doSMP1
有关如何使其正常工作的任何建议。 在我的8核计算机上,doSNOW从2.11版本开始停止工作,我希望能够在本地并行处理而不将任何内容发送到linux服务器。
我在8核计算机上的WinXP 64位上运行R 2.12.1(32位)。
doSMP实际上是为在Revolution版本上使用而开发的,并且在您的系统上非常繁重。 以我的经验,如果您对自己的工作不是很非常小心,它很容易使R崩溃。 对于并行计算,我对snow , snowfall (本质上是snow的前端)和multicore软件包的使用要好得多。
还要确保使用最新版本的R(2.12.2),因为当前版本的doSMP是针对2.12.2编译的。
如果您确实需要摆脱这些会话,可以尝试在查看worker对象时删除指定的临时目录中的文件:
> w <- startWorkers(workerCount = 4)
> w
$taskq
<pointer: 0x05974f20>
$qname
[1] "doSMP1"
$workerCount
[1] 4
$tmpdir
[1] "C:\\Users\\JORISF~1\\AppData\\Local\\Temp\\RtmpXxLcTk\\doSMP44c815a1"
您应该清除此目录。 写下临时文件后,请先停止当前工作进程,然后尝试删除所有会话:
stopWorkers(w)
rmSessions(all=TRUE)
然后清理目录。 然后重新启动R。有时,启动后仍然有剩余的会话在运行,您会发现如果再次使用startWorkers()
。 如果是这样,请再次使用first stopWorkers(w)
而不先注册! 然后再次执行rmSessions(all = TRUE)。 有时R会崩溃。 重新启动并按照此处指示继续。
最后,忘记doSMP并使用其他提到的软件包之一。 如果您以前没有经验,降雪将使您头疼的问题降到最低。 有一个很好的介绍在这里 。
更新:从R2.14开始,您具有内置的parallel
包,其中包含multicore
和snow
的功能。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.