繁体   English   中英

无法删除以前的doSMP队列

[英]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崩溃。 对于并行计算,我对snowsnowfall (本质上是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包,其中包含multicoresnow的功能。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM