首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >可以移植到OpenMP和MPI的C++程序中的复杂循环?

可以移植到OpenMP和MPI的C++程序中的复杂循环?
EN

Stack Overflow用户
提问于 2011-01-28 03:39:05
回答 2查看 446关注 0票数 0

我有一个处理C++数字的程序。它的结构是:

a)数据输入、数据准备

b)“大”循环,使用全局和局部数据(两种情况下都有许多不同的变量)

c)后处理结果和写入数据

最密集的部分是"b",它基本上是一个循环。我需要在集群中加速程序。25个刀片,每个4核。我想知道我是否可以在这里使用OpenMP和MPI,或者你是否可以给我指点教程,不是一般的案例,而是复杂和“大”的循环。

谢谢

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-01-28 04:03:04

实际上,您应该同时使用两者。

使用MPI在刀片式服务器和OpenMP之间分配任务,以充分利用每个刀片式服务器。花点时间了解内存和共享在每种情况下是如何工作的。

票数 1
EN

Stack Overflow用户

发布于 2011-01-28 04:20:01

您不能使用OpenMP在刀片式服务器之间划分任务。试着将你的循环分成几个部分,并在它们上分配容量。例如,如果你想合成2个大小为N的向量。N/2将位于一个节点上,另一部分位于另一个节点上。

但刀片式服务器之间的传输成本显而易见。因此,如果你的任务实际上不是很好。如果你把它分配到4个内核中,可能会更好。

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

https://stackoverflow.com/questions/4820992

复制
相关文章

相似问题

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