我想问问有没有人知道boost :: mpi初学者的文档? (我已经从Internet站点阅读Boost.MPI文档)。使用Boost为MPI设计共享内存
有一点关于我的系统,我有一个约90节的碎石,每个节有两个CPU,两个核心(4个核心在一起)和4Gb RAM。
我想定义每个结的共享内存,并且存储矢量std::vector<bool> occupation;
。然后每个进程需要根据他的rank()
号码来计算一些东西。
现在,所有的多进程需要等到所有内核完成计算,然后发送一个载体,std::vector<uint32_t> remove;
,主处理(rank() == 0
)将更新载体occupation
,然后发送到所有结新occupation
向量。
这可能是它最好使用简单的mpi.h
而不是boost::mpi
。
我想听听您的意见,因为我没有这方面的MPI经验。
感谢您的回答。让我们假设'占领'是'2^30'布尔元素的大小,那么每个过程都需要1Gb,在那里我只需要一个所有4个核心的“职业”向量......这就是我的原因问题 – Eagle 2011-03-24 23:15:33
解决这个问题的一种方法是在节点之间使用MPI,并在节点内部使用OpenMP等线程方法;那么每个节点只需要一个副本,如果每个节点都有4Gb,那么这很好。否则,是否有一些计算结构 - 不需要同时需要所有职业的所有任务? – 2011-03-24 23:37:01
“职业”是程序的中心,大部分计算都需要在计算过程中访问这个向量。我搜索了一下网络,而我正在寻找的是混合编程? (MPI和OpenMP的组合) – Eagle 2011-03-24 23:49:55