MPI

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不行

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 一、OpenMP OpenMP是由OpenMP Architecture Review Board牵头提出的,并已...
    鲸落寰宇阅读 3,201评论 1 2
  • 前言 计算机编程语言很多,但是适合高性能数值计算的语言却并不多,在高性能计算的项目中通常会使用到的语言有 Fort...
    自可乐阅读 19,964评论 3 22
  • 在上一篇中我们介绍了 mpi4py 与 OpenMP 混合编程,下面我们将介绍在 IPython 中使用 mpi4...
    自可乐阅读 1,564评论 0 1
  • 环境 bjht9050munge-0.5.11slurm-19.05.2openmpi-1.4.5./submit...
    GradientDescent阅读 519评论 0 0
  • MPI简介 说到并行计算,我们有一个不可绕开的话题——MPI编程。MPI是一个跨语言的通讯协议,用于编写并行计算机...
    没对象的野指针阅读 86,551评论 3 27