使用MPI时的阵列内存分配

时间:2011-03-22 14:32:59

标签: c mpi

我正在使用C和MPI。如果程序在同一台机器上的多个处理器上运行,如何为数组分配内存?该数组是否在所有参与任务之间共享,或者每个任务都有自己的副本?

2 个答案:

答案 0 :(得分:6)

每个排名都有自己的数据副本。它们通常在单独的进程中运行,因此不共享虚拟地址空间。

Adaptive MPIPhoenix等实现在一个公共进程中的线程上放置了多个排名,但他们采取措施隔离每个排名,以便认为它作为一个单独的进程运行。

答案 1 :(得分:3)

MPI是一种分布式内存框架。它只有一个有限的共享内存处理概念。如果共享内存对程序的性能很重要,那么我建议你研究OpenMP;两者都可以组合在同一个应用程序中。 (即,每个节点最好运行一个基于OpenMP的进程,通过MPI与其他实例进行通信。)