使用fork和MPI进行多进程编程之间的区别

ima*_*bou 2 fork mpi multiprocess

使用linux"fork"创建多进程程序和MPI库中可用的函数之间在性能或其他方面是否存在差异?或者,由于可以使用的功能,它在MPI中更容易实现吗?

Wes*_*and 6

他们没有解决同样的问题.注意并行编程和分布式内存并行编程之间的区别.

使用您提到的fork/join模型通常用于在同一物理机器上进行并行编程.您通常不会将您的工作分配给其他连接的计算机(注释中的某些模型除外).

MPI用于分布式内存并行编程.您可以使用一组计算机(甚至数十万个处理器)来解决问题,而不是使用单个处理器.虽然这些有时被认为是一台大型逻辑机器,但它们通常由许多处理器组成.MPI函数用于简化分布式计算机上这些进程之间的通信,以避免在所有进程之间手动打开TCP套接字等操作.

所以除非你只是在一台机器上运行你的MPI程序,否则没有真正的方法来比较它们的性能,这实际上不是它的设计目的.是的,您可以在一台计算机上运行MPI,人们会一直为小型测试代码或小型项目执行此操作,但这不是最大的用例.