我有一个处理C++数字的程序。它的结构是:
a)数据输入、数据准备
b)“大”循环,使用全局和局部数据(两种情况下都有许多不同的变量)
c)后处理结果和写入数据
最密集的部分是"b",它基本上是一个循环。我需要在集群中加速程序。25个刀片,每个4核。我想知道我是否可以在这里使用OpenMP和MPI,或者你是否可以给我指点教程,不是一般的案例,而是复杂和“大”的循环。
谢谢
发布于 2011-01-28 04:03:04
实际上,您应该同时使用两者。
使用MPI在刀片式服务器和OpenMP之间分配任务,以充分利用每个刀片式服务器。花点时间了解内存和共享在每种情况下是如何工作的。
发布于 2011-01-28 04:20:01
您不能使用OpenMP在刀片式服务器之间划分任务。试着将你的循环分成几个部分,并在它们上分配容量。例如,如果你想合成2个大小为N的向量。N/2将位于一个节点上,另一部分位于另一个节点上。
但刀片式服务器之间的传输成本显而易见。因此,如果你的任务实际上不是很好。如果你把它分配到4个内核中,可能会更好。
https://stackoverflow.com/questions/4820992
复制相似问题