在UMA机器上使用MPI有什么好处。在我看来,将OpenMP与UMA机器一起使用会更有意义,因为它们都共享内存。 MPI在NUMA机器上更有意义,因为NUMA为每个进程提供了自己的内存。
答案 0 :(得分:4)
使用分布式内存编程模型(如MPI或Charm ++)甚至在名义上统一的共享内存硬件上的价值在于它产生了更加局部性的算法和实现设计。即使对于单核,存储器访问成本也是不均匀的 - 空间和时间局部性的假设被深深地融入到通用微处理器存储器层次结构的设计中。设计分布式存储器还意味着设计在本地数据块上运行,而不是一次在整个工作集上运行。
此外,请记住,即使单插槽多核系统仍然为每个核心提供私有缓存,并且将数据从一个缓存传输到另一个缓存需要的通信成本高于访问本地缓存中的私有数据的成本。有关如何在应用程序中发挥作用的示例,请参阅Jetley & Kale, "Optimizations for Message Driven Applications on Multicore Architectures", published at HiPC 2011。