与雪 SOCK 以外的集群进行并行计算

Posted

技术标签:

【中文标题】与雪 SOCK 以外的集群进行并行计算【英文标题】:Parallel computing with clusters other than snow SOCK 【发布时间】:2012-01-14 20:23:10 【问题描述】:

最近在 R2.14 中增加了对并行计算的直接支持,这在我的脑海中引发了一个问题。在 R 中创建集群有很多选择。我经常使用snow SOCK 集群,但我知道还有其他方法,例如 MPI。我使用 SOCK snow 集群,因为我不需要安装任何额外的软件(我使用 Fedora 13)。

所以,我的具体问题:

    使用非 SOCK 集群时性能是否有所提升? 使用非 SOCK 集群在多台计算机上创建集群是否更容易?

【问题讨论】:

根据我的经验,主要是您编写代码的方式会在包之间产生差异。我不是 HPC 方面的专家(我相信其他人会加入),但我认为其他类型(SOCK 除外)用于不同的计算机架构。如果您有一个计算机集群,则需要一个能够在节点之间进行通信的接口。例如,这就是 (Open)MPI 的用武之地。如果您还没有阅读降雪小插图,它还有一些附加信息。 感谢您的反馈。我很好奇是否值得将时间投入到更先进的(?)并行计算设施上,而不是雪和 SOCK,这对我很有用。 在目前的形式中,这个问题并不真正适合 SO 格式(不存在具有潜在“正确”答案的问题)。就像它已经做到的那样,这将吸引密切的投票。但是,我不希望看到这个话题消失(确实很难找到关于这些话题的信息),所以我可以邀请您在问题结束之前编辑您的问题吗? 嗯,这实际上不是从实际问题中得出的。你有什么建议我可以把它变成一个 SO 问题吗? 我添加了一些应该可以回答的具体问题。我希望这已经足够了。 【参考方案1】:

1) 可用的基准测试数量有限,证明 MPI 将比 SOCKets 更快。但作为 R 用户,您可能不会关心这些差异。它们在毫秒范围内,在令人尴尬的并行问题中通信次数并不多

2) 是的,您不必提供机器名称或 IP 列表。对于具有 100 个节点的计算机集群,这会变得复杂。但一切都取决于您的计算机集群。在大多数情况下,MPI 或 PVM 已经预先安装,并且一切都使用 Rmpi​​ 开箱即用,...

【讨论】:

谢谢!关于问题 2),MPI 和 PVM 可能安装在预配置的集群上,但就我而言,我有兴趣创建一个临时集群。当我需要它时,我会问一些同事是否可以借用他们的一些内核。在这些情况下,通常不会安装 MPI 等。 在这种情况下,SOCK 可能是一个简单的解决方案。您可以检查 Redis 以设置更优雅的解决方案 (cran.r-project.org/web/packages/doRedis/index.html)。它也支持云资源! 假设 Rmpi​​ 编译成功。 :)

以上是关于与雪 SOCK 以外的集群进行并行计算的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Azure ML 服务计算集群上并行工作?

python并行计算

R语言-并行计算

R语言并行计算中的内存控制

k8s集群Job负载支持多个Pod可靠并发,如何权衡利弊选择适合的并行计算模式?

数据与模型并行