那么,你实际上并没有确切地说明你的目标硬件是什么,如果它是共享内存的机器,那么OpenMP是一个选项。大多数并行程序员认为使用OpenMP进行并行化比使用MPI的任何形式更容易。我还建议,将OpenMP改装为现有代码比MPI更容易。从表现最好的角度来看,最好的MPI程序是从头开始设计并与消息传递并行的程序。
此外,最佳顺序算法可能并不总是最有效的算法,一旦它被平行化。有时候,一个简单但顺序次优的算法是更好的选择。
您可以访问到共享内存的计算机:
- 所有多核CPU的有效共享内存的计算机;
- 在许多集群上,节点通常是两个或四个强的CPU,如果它们每个都有4个内核,那么您的集群上可能有一个16核共享内存计算机;
- 如果您有权访问MPP超级计算机,您可能会发现其每个节点都是共享内存计算机。
如果你被卡住消息传递,那么我强烈建议你坚持使用C++和的openmpi(或任何MPI已经安装在系统上),你应该在BoostMPI无疑显得太。我强烈建议这样做,因为一旦你走出高性能科学计算的主流,你可能会发现自己身处一场编程之中,拥有一套特殊的适合研究型图书馆和其他工具。 C++,OpenMPI和Boost已经被很好的使用,你可以把它们视为'武器级'或者你喜欢的类比。例如,在MPI和OpenMP上流量很少,在您投注农场之前查看其他技术的统计数据。
如果您对MPI没有经验,那么您可能需要查看一本名为并行科学计算的书,C++和MPI由Karniadakis和Kirby编写。 Gropp使用MPI等可以作为参考,但它并不是初学者关于消息传递编程的文本。
嗨!非常感谢您的回复。 – 2010-03-31 15:39:54