【问题标题】:Increasing number of connections allowed by RR允许的连接数增加
【发布时间】:2014-10-12 16:43:32
【问题描述】:

我一直在努力建立一个 5 个节点、200 个 CPU 集群,主要是因为 R 显然已将 NCONNECTIONS 设置为将最大值限制为 128。根据我读过的here,我需要更改参数并重建 R (大概在每个节点上?),但我找不到上面指定的目录或文件。

如何更改 NCONNECTIONS 并重建 R?

我正在运行 Linux 版本 2.6.32-279.el6.x86_64

【问题讨论】:

  • 我认为这意味着您正在使用基于套接字的雪状集群,但是:(a) 对于具有大量内核的单个 CPU,您宁愿使用 parallel::mclapply 和朋友,因为它们不会产生单独的 R 实例,因此内存效率更高,并且更易于管理; (b) Rmpi​​ 通常是一个更好的选择,例如,通信成本(数据到/从节点的移动)随着节点数量的对数而增加,而不是线性地,并且不消耗 R 的套接字!。
  • @MartinMorgan 你是对的,但我认为我们使用的术语不同——我有 5 台机器,每台机器有 40 个处理器,我正在尝试运行大量非常小的作业需要并行性(可以独立运行)。对于这样的问题,您有什么建议?
  • 如果你使用snow而不是parallel,你可以使用makeMPIcluster而不是makePSOCKcluster来创建集群以避免socket连接限制。

标签: linux r


【解决方案1】:

从您提供链接的帖子中,我们读到“在 src/main/connections.c 中增加 NCONNECTIONS 后,您必须重建 R”。我猜这是 R 的源代码树中的一个文件,因此您首先必须下载该源代码树,例如在任何基于 Debian 的发行版下:

$ apt-get source r-base

然后进行更改并编译(./configure ; make ; make install 来自您当前目录中创建的r-base-3.1.1 目录)。

【讨论】:

  • 我远不是集群方面的专家,所以让我问一下:坚持 128 个连接限制并编写一个包装器将工作划分为两个顶级实例是否有意义R ?
【解决方案2】:

这是一个简短的函数

FUN <- function(i) { Sys.sleep(1); paste("job", i) }

加载 snow 库并生成与集群中每台机器的连接

library(snow)
cl <- makeSOCKcluster(5)

然后为每台机器使用 parallel::mclapply 完成工作,使用所有可用的内核。

parLapply(cl, seq_along(cl), function(i, FUN, n, ...) {
    parallel::mclapply(seq_len(n), FUN, ...)
}, FUN, 8, mc.cores=parallel::detectCores())

完成后清理

stopCluster(cl)

这是相同的策略,但更隐秘一点,并使用snow::splitList(或splitIndicies)将任务划分为由雪团的每个成员完成的任务。

library(snow)
library(parallel)

tasks <- splitList(1:40, length(cl))
parLapply(cl, tasks, mclapply, FUN, mc.cores=detectCores())

很遗憾,没有默认的方法来做到这一点; BiocParallel 包允许

library(BiocParallel)

register(MulticoreParam())  ## 'inner' worker
register(SnowParam(4))      ## outer worker; 'register' is a stack

bplapply(1:4, function(i, FUN, n) {
    result <- BiocParallel::bplapply(seq_len(n), FUN)
    sprintf("%d:%d", i, unlist(result))
}, FUN, 8)

【讨论】:

  • 猜猜在 jaybees 的回答下回答了我的问题。谢谢
猜你喜欢
  • 2018-01-14
  • 1970-01-01
  • 2013-06-07
  • 1970-01-01
  • 2020-11-20
  • 2019-12-24
  • 2014-05-28
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多