如何检查stopCluster(R)是否有效

Bio*_*roo 2 parallel-processing r

当我尝试使用stopCluster从我的工作区中删除一个集群时,它似乎不起作用.以下是我正在使用的代码.

> cl <- makeCluster(3)
> cl
socket cluster with 3 nodes on host ‘localhost’
> stopCluster(cl)
> cl
socket cluster with 3 nodes on host ‘localhost’
Run Code Online (Sandbox Code Playgroud)

请注意,cl在我应该删除它之后,该命令仍被称为具有3个节点的套接字群集.我不应该得到一个错误object cl is not found吗?我怎么知道我的群集实际上已被删除?一个相关的问题:如果我关闭R,群集是否终止,我的计算机是否恢复到能够使用其所有核心的正常状态?

Jos*_*ich 6

cl在运行之前,不应该找到未找到的错误rm(cl).停止群集不会从您的环境中删除该对象.

使用showConnections地看到,没有连接有效:

> require(parallel)
Loading required package: parallel
> cl <- makeCluster(3)
> cl
socket cluster with 3 nodes on host ‘localhost’
> showConnections()
  description         class      mode  text     isopen   can read can write
3 "<-localhost:11129" "sockconn" "a+b" "binary" "opened" "yes"    "yes"    
4 "<-localhost:11129" "sockconn" "a+b" "binary" "opened" "yes"    "yes"    
5 "<-localhost:11129" "sockconn" "a+b" "binary" "opened" "yes"    "yes"    
> stopCluster(cl)
> showConnections()
     description class mode text isopen can read can write
> 
Run Code Online (Sandbox Code Playgroud)

您的计算机是否"恢复正常状态"取决于您创建的群集类型.如果它只是一个简单的套接字或分支集群,那么优雅地停止父进程应该导致所有子进程终止.如果它是一个更复杂的集群,则终止R可能不会停止它在节点上启动的所有作业.