首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何将doMPI和doMC组合在集群上?

如何将doMPI和doMC组合在集群上?
EN

Stack Overflow用户
提问于 2016-02-18 15:09:56
回答 1查看 776关注 0票数 1

我曾经用doMCforeach进行并行计算,现在我可以访问集群了。我的问题类似于这个Going from multi-core to multi-node in R,但是在这个帖子上没有反应。

基本上,我可以向我的批处理队列系统请求多个任务-n和每个任务-c的多个核心。我确实能够使用doMPI对我请求的任务数量进行并行模拟,但是现在我想使用startMPIclustermaxcores选项来使每个MPI进程使用多核功能。

我注意到的是,parallel::detectCores()似乎没有看到我被赋予了多少核,并且返回了一个节点的最大核心数。

就目前而言,我尝试过:

代码语言:javascript
复制
ncore = 3 #same number as the one I put with -c option
library(Rmpi)
library(doMPI)
cl <- startMPIcluster(maxcores = ncore)
registerDoMPI(cl)
## now some parallel simulations
foreach(icount(10), .packages = c('foreach', 'iterators', 'doParallel')) %dopar% {
    ## here I'd like to use the `ncore` cores on each simulation of `myfun()`
    registerDoParallel(cores = ncore)
    myfun()
}

(myfun中确实有一些foreach循环),但是如果设置了ncore > 1,则会得到一个错误:

{:任务1失败-“mckill‘failed”中的错误

谢谢

编辑

machineI可以访问is calcul/airain.htm,其中指定了"Librairies MPI: BullxMPI,distribution优化并与OpenMPI兼容“

EN

回答 1

Stack Overflow用户

发布于 2016-04-08 13:59:53

你试图同时使用许多不同的概念。您正在使用基于MPI的集群在不同的计算机上启动,但同时尝试使用多核处理。这使得事情变得不必要的复杂。

您使用的群集可能分散在多个节点上。如果要进行并行处理,则需要某种方式在这些节点之间传输数据。

MPI来了。这是一种在不同机器上轻松连接不同工作人员的方法,而不需要指定IP地址或端口。这就是为什么您希望使用mpirunccc_mprun启动您的进程(这可能是一个为您的特定集群提供额外参数的脚本)。

我们现在如何在R?中使用这个系统(另见https://cran.r-project.org/web/packages/doMPI/vignettes/doMPI.pdf)

使用:mpirun -n 24 R --slave -f myScriptMPI.R启动脚本,用于在24个工作进程上启动。群集管理系统将决定在何处启动这些工作进程。它可能在同一台(强大的)机器上启动所有24台,也可能将它们分散在24台不同的机器上。这取决于工作负载、可用资源、可用内存、当前处于休眠模式的机器等。

上面的命令将在24台不同的机器上启动myScriptMPI.R。我们现在如何合作?

代码语言:javascript
复制
library(doMPI)
cl <- startMPIcluster() 
#the "master" process will continue
#the "worker" processes will wait here until receiving work from the master
registerDoMPI(cl)
## now some parallel simulations
foreach(icount(24), .packages = c('foreach', 'iterators'), .export='myfun') %dopar% {
    myfun()
}

您的数据将自动从主到工人使用MPI协议。

如果您想要更多地控制您的分配,包括为多核和节点间并行化制作“嵌套的”MPI集群,我建议您阅读doMPI小片段。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35485172

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档