了解MPI

  1. 什么是MPI
    (1)MPI是一个库而不是一门语言,许多人认为MPI就是一种并行语言,这是不准确的。但是按照并行语言的分类可以把FORTRAN+MPI或C+MPI。看作是一种在原来串行语言基础之上扩展后得到的并行语言,MPI库可以被FORTRAN77/C/Fortran90/C++调用,从语法上说它遵守所有对库函数/过程的调用规则和一般的函数/过程没有什么区别­ 。
    (2)MPI是一种标准或规范的代表,而不特指某一个对它的具体实现。迄今为止所有的并行计算机制造商都提供对MPI的支持可以在网上免费得到,MPI在不同并行计算机上的实现一个正确的MPI程序可以不加修改地在所有的并行机上运行。
    (3)MPI是一种消息传递编程模型并成为这种编程模型的代表和事实上的标准。MPI虽然很庞大,但是它的最终目的是服务于进程间通信这一目标的。

  2. MPI的目的

1.较高的通信性能
2.较好的程序可移植性
3.强大的功能

具体地说包括以下几个方面:

  • 提供应用程序编程接口
  • 提高通信效率措施包括避免存储器到存储器的多次重复拷贝允许计算和通信的重叠等l
  • 可在异构环境下提供实现
  • 提供的接口可以方便 C 语言和 Fortran 77的调用
  • 提供可靠的通信接口即用户不必处理通信失败
  • 定义的接口和现在已有接口如PVM、NX、Express、p4等差别不能太大但是允许扩展以提供更大的灵活性
  • 定义的接口能在基本的通信和系统软件无重大改变时在许多并行计算机生产商的平台上实现接口的语义是独立于语言的
  • 接口设计应是线程安全的

MPI提供了一种与语言和平台无关可以被广泛使用的编写消息传递程序的标准用它来编写消息传递程序不仅实用可移植高效和灵活而且和当前已有的实现没有太大的变化

3.MPI语言绑定
由于MPI是一个库而不是一门语言,因此对MPI的使用必须和特定的语言结合起来进行,FORTRAN是科学与工程计算的领域语言,而C又是目前使用最广泛的系统和应用程序开发的语言之一,因此对FORTRAN和C的支持是必须的。
因此在MPI-1中明确提出了MPI和FORTRAN 77与C语言的绑定并且给出了通用接口和针对FORTRAN 77与C的专用接口,说明MPI-1的成功说明MPI选择的语言绑定策略是正确和可行的。Fortran90是FORTRAN的扩充它在表达数组运算方面有独特的优势,还增加了模块等现代语言的方便开发与使用的各种特征。它目前面临的一个问题是Fortran90编译器远不如FORTRAN 77编译器那样随处可见但提供Fortran90编译器的厂商正在逐步增多。
C++作为面向对象的高级语言随着编译器效率和处理器速度的提高它可以取得接近于C的代码效率面向对象的编程思想已经被广为接受。因此在MPI-2中除了和原来的FORTRAN 77和C语言实现绑定之外进一步与Fortran90和C++结合起来提供了四种不同的接口为编程者提供了更多选择的余地。

4.MPI的实现

并行计算之MPI(三)相关推荐

  1. 并行计算之MPI(五)

    MPI的6个基本函数 MPI_Init 任何MPI程序都应该首先调用该函数. 此函数不必深究,只需在MPI程序开始时调用即可(必须保证程序中第一个调用的MPI函数是这个函数). MPI_Init(&a ...

  2. 并行计算之MPI(二)

    1.并行编程模型 目前两种最重要的并行编程模型是数据并行和消息传递数据并行编程模型的编程级别比较高编程相对简单但它仅适用于数据并行问题消息传递编程模型的编程级别相对较低但消息传递编程模型可以有更广泛的 ...

  3. 并行计算之MPI(一)

    MPI学习 1. 了解并行计算 为什么要采用并行计算? (1)这是因为它可以加快速度即在更短的时间内解决相同的问题或在相同的时间内解决更多更复杂的问题特别是对一些新出现的巨大挑战问题: (2)节省投入 ...

  4. [多核并行计算]进程间通信(三)套接字

    socket套接字不仅可以在不同主机间通信,如TCP/UDP等网络方式通信.也可以再本机为不同进程间通信提供服务. int socket(int domain, int type, int proto ...

  5. 金融工程与并行计算:第三章 多资产模拟与R的使用 Part 2

    第三节 R的Cholesky函数 在多资产的模拟中,我们需要将相关性矩阵进行Cholesky分解.形成下三角与上三角矩阵的乘积.以一个2╳2的相相关性矩阵为例.M可分解成L与U的乘积. ....... ...

  6. MPI多机器实现并行计算

    最近使用一个系统的分布式版本搭建测试环境,该系统是基于MPI实现的并行计算,MPI是传统基于msg的系统,这个框架非常灵活,对程序的结构没有太多约束,高效实用简单,下面是MPI在多台机器上实现并行计算 ...

  7. 搭建MPI并行计算环境并计算pi值[windows 和 Ubuntu]

    文章目录 一. 选在Linux,Ubuntu或者Windows上搭建mpi环境 First of all What's more 二.VS配置mpi 三.计算pi值 (1)基础编译环境的构建 (2)M ...

  8. Windows系统下搭建MPI(并行计算)环境

    Windows系统下搭建MPI环境 MPI的全称是Message Passing Interface即标准消息传递界面,可以用于并行计算.MPI的具体实现一般采用MPICH.下面介绍如何在Window ...

  9. Windows系统下搭建MPI环境

    Windows系统下搭建MPI环境 MPI的全称是Message Passing Interface即标准消息传递界面,可以用于并行计算.MPI的具体实现一般采用MPICH.下面介绍如何在Window ...

最新文章

  1. 没有java home_【Java安装】必须有JAVA_HOME变量吗
  2. python中文意思k-【Python】 汉字转化汉语拼音pinyin
  3. 从零开始入门 K8s| 详解 Pod 及容器设计模式
  4. go ...打散切片
  5. 微信红包问题:找出某个出现次数超过红包总数一半的红包的金额(面试题)
  6. Python Twisted介绍
  7. vue设置金额和时间格式(团购倒计时下次一定)
  8. list集合根据jsonobjectvalue排序_Java之List集合两种排序的性能比较
  9. 【MySQL】与【Oracle】
  10. 计算机病毒与恶意代码期末总结
  11. Matlab之函数绘图函数ezplot
  12. 怎么把cad的图导入ps_CAD图纸快速高效导入PS的方法
  13. win10LTSC(企业版)命令激活
  14. 站在两个世界的边缘 程浩,一个认真生活过的人
  15. RabbitMQ 使用java连接时出现异常com.rabbitmq.client.impl.AMQChannel.wrap和ConnectException
  16. [机器学习与scikit-learn-20]:算法-逻辑回归-线性逻辑回归linear_model.LogisticRegression与代码实现
  17. win7系统64位下安装sql server2000时提示兼容性问题
  18. android 拍照 对焦,Android Camera2 拍照(四)——对焦模式
  19. mac键盘快捷键详解,苹果电脑键盘快捷键图文教程
  20. 如何搭建自己的cdn

热门文章

  1. Vista破解TCP/IP线程数为BT、电驴提速(转)
  2. 安装破解版 Charles for mac抓包工具教程
  3. 进来看很有趣,用JavaScript打印乘法口诀表 用JavaScript打印加法口诀表 用JavaScript打印菱形 用JavaScript判断是否为回文 用JavaScript解决百只鸡的问题
  4. Dynamic Graph
  5. svn提示*out of date
  6. windows10+Ubuntu20.04双系统安装——以雷神新911为例
  7. 智能分析网关基于AI烟火识别技术的消防预警方案
  8. python读取excel_如何使用Android读取护照
  9. Competing in the Dark: An Efficient Algorithm for Bandit Linear Optimization
  10. 编码处理问题总结:UnicodeDecodeError:'gbk' codec can't decode byte 0xe3: illegal multibyte sequence与读取docx