MPI(Message Passing Interface,消息传递接口)是一种消息传递编程模型。消息传递指用户必须通过显式地发送和接收消息来实现处理器间的数据交换。在这种并行编程中,每个控制流均有自己独立的地址空间,不同的控制流之间不能直接访问彼此的地址空间,必须通过显式的消息传递来实现。这种编程方式是大规模并行处理机(MPP)和机群(Cluster)采用的主要编程方式。由于消息传递程序设计要求用户很好地分解问题,组织不同控制流间的数据交换,并行计算粒度大,特别适合于大规模可扩展并行算法。
MPI是基于进程的并行环境。进程拥有独立的虚拟地址空间和处理器调度,并且执行相互独立。MPI设计为支持通过网络连接的机群系统,且通过消息传递来实现通信,消息传递是MPI的最基本特色。
1.1MPI的含义及功能
作为缩写的MPI具有两种含义:
❑MPI是一种标准或规范的代表,而不特指某一个对它的具体实现,并成为这种编程模型的代表和事实上的标准。迄今为止,所有的并行计算机制造商都提供对MPI的支持,可以在网上免费得到MPI在不同并行计算机上的实现,一个正确的MPI程序可以不加修改地在所有的并行机上运行。
❑MPI是一个库,而不是一门语言。MPI库共用三百多个函数调用,可以被Fortran 77/90和C/C++调用,从语法上说,它遵守所有对库函数/过程的调用规则,和一般的函数/过程没有什么区别。目前MPI最新的标准是3.0 版。MPI只规定了标准并没有给出实现,目前主要的实现有OpenMPI、Mvapich 和MPICH,MPICH 相对比较稳定,而OpenMPI 性能较好,Mvapich 则主要是为了Infiniband 而设计。
flexpart 运行Mvapich 可以的,MPICH不行
网友评论