R包未来-为什么远程工作者的循环会挂起本地R会话

R包未来-为什么远程工作者的循环会挂起本地R会话,r,parallel-processing,package,r-future,R,Parallel Processing,Package,R Future,如果你需要一个例子,请告诉我,但我认为没有必要 我已经编写了一个for循环,它生成未来并将每个结果存储在一个列表中。计划是远程的,比如说,由互联网机器上的4个节点组成 在部署了第四个future并且远程机器的所有内核都很忙之后,R将挂起,直到其中一个空闲。由于我没有使用任何本地内核,为什么它必须挂起?这是改变这种行为的一种方式吗?这里是未来框架的作者。这种行为是故意的 您的主R会话有一定数量的可用工作人员。员工数量取决于您制定的未来计划。您可以随时通过调用nbrOfWorkers()检查设置的工

如果你需要一个例子,请告诉我,但我认为没有必要

我已经编写了一个for循环,它生成未来并将每个结果存储在一个列表中。
计划
是远程的,比如说,由互联网机器上的4个节点组成


在部署了第四个future并且远程机器的所有内核都很忙之后,R将挂起,直到其中一个空闲。由于我没有使用任何本地内核,为什么它必须挂起?这是改变这种行为的一种方式吗?

这里是未来框架的作者。这种行为是故意的

您的主R会话有一定数量的可用工作人员。员工数量取决于您制定的未来计划。您可以随时通过调用
nbrOfWorkers()
检查设置的工作人员数量。在本例中,您有四个远程工作者,这意味着
nbrOfWorkers()
返回
4

您可以随时在不阻塞的情况下激活此数量的未来(
nbrOfWorkers()
)。当你试图再创造一个未来时,没有更多的工人可以承担。此时,唯一的选择是阻止

现在,你可能会问:当远程工作人员都很忙的时候,我如何使用我的本地机器

实现这一点的最简单方法是在远程工作人员的组合中添加一个或多个本地工作人员。例如,如果您允许自己在本地计算机上使用两个工人,则可以按如下方式执行:

库(未来)
远程工作人员