2014-10-20 31 views
3

在UMA机器上使用MPI有什么优势?在我看来,使用OpenMP和UMA机器会更有意义,因为它们共享内存。 MPI在NUMA机器上更有意义,因为NUMA为每个进程提供了自己的内存。在UMA机器上使用MPI的优点

+0

您似乎混合了一些术语。 NUMA系统仍然是共享内存的 - 这只是地址空间中存在“快速”(本地)和“慢速”(远程)部分,UMA情况下没有这种区别。如果存在多个物理上分离的地址空间,则称为分布式存储器系统。 – 2014-10-28 10:09:07

回答

4

即使在名义上统一的共享内存硬件上使用分布式内存编程模型(如MPI或Charm ++)的价值在于它产生了更加注重局部性的算法和实现设计。即使对于单核,内存访问成本也是不均匀的 - 空间和时间局部性的假设深入到通用微处理器内存层次结构的设计中。设计分布式存储器也意味着设计可以在本地数据块上运行,而不是一次在整个工作集上运行。另外,请记住,即使单插槽多核系统仍然具有每个内核的专用高速缓存,并且将数据从一个高速缓存传输到另一个高速缓存需要的通信成本高于访问本地高速缓存中私有数据的成本。有关应用程序如何实现的示例,请参见Jetley & Kale, "Optimizations for Message Driven Applications on Multicore Architectures", published at HiPC 2011