MPI简介
什么是MPI:
MPI是一个库,而不是一门语言。但是按照并行语言的分类,可以把FORTRAN+MPI或者C+MPI看作是一种在原来串行语言基础上扩展后得到的并行语言。MPI库可以被FORTRAN77/C/FORTRAN90/C++调用,从语法上说,它遵守所有对库函数/过程的调用规则,和一般的函数/过程没有什么区别。
MPI是一种标准或规范的代表,而不特指某一个对它的具体实现。迄今为止,所有的并行计算机制造商都提供对MPI的支持,可以在网上免费得到MPI在不同并行机上的实现。一个正确的MPI程序,可以不加修改地再所有的并行机上运行。
MPI是一种消息传递编程模型,并成为这种编程模型的代表和标准。
消息传递方式是广泛应用于多类并行机的一种模式,特别是那些分布存储并行机,尽管在具体的实现上有许多不同,但通过消息完成进程通信的基本概念是容易理解的。十多年来,这种模式在重要的计算应用中已取得了实质进步。有效和可移植地实现一个消息传递系统是可行的,因此,通过定义核心库程序的语法、语义,这将在大范围计算机上可有效实现将有益于广大用户。这是MPI产生的重要原因。
MPI的目的:较高的通信性能,较好的程序可移植性,强大的功能。
提供应用程序编程接口
提高通信效率,措施包括避免存储器到存储器的多次重复拷贝,允许计算和通信的重叠等
可在异构环境下提供实现
提供的接口可以方便C语言和Fortran77的调用
提供可靠的通信接口,即用户不必处理通信失败
定义的接口和现在已有接口,如PVM、NX、Express、p4等。差别不能太大。但是允许扩展以提供更大的灵活性
定义的接口能在基本的通信和系统软件无重大改变时,在许多并行计算机生产商的平台上实现。接口的语义是独立于语言的
接口设计应是线程安全的
MPI的产生:
MPI的语言绑定:
在MPI-1中明确提出了MPI和FORTRAN77与C语言的绑定,并且给出了通用接口和针对FORTRAN77与C的专用接口说明。
在MPI-2中除了和原来的FORTRAN77和C语言实现绑定之外,进一步与Fortran90和C++结合起来,提供了四种不同的接口,为编程者提供了更多选择的余地。但是MPI-2目前还没有完整的实现版本。
目前主要的MPI实现:
MPICH是一种最重要的MPI实现,它可以免费从http://www-unix.mcs.anl.gov/mpi/mpich取得。更为重要的是,MPICH是一个与MPI-1规范同步发展的版本,每当MPI推出新的版本就会有相应的MPICH的实现版本。目前MPICH的最新版本是MPICH-1.2.1。
CHIMP是Edinburgh开发的另一个免费MPI实现,是在EPCC(Edinburgh Parallel Computing Centre)的支持下进行的。从ftp://ftp.epcc.ed.ac.uk/pub/packages/chimp/release/可以免费下载该软件。
LAM (Local Area Multicomputer)也是免费的MPI实现,由Ohio State University开发。它目前的最新版本是LAM/MPI 6.3.2,可以从http://www.mpi.nd.edu/lam/download/下载。它主要用于异构的计算机网络计算系统。
MPI简介的更多相关文章
- MPI编程简介[转]
原文地址http://blog.csdn.net/qinggebuyao/article/details/8059300 3.1 MPI简介 多线程是一种便捷的模型,其中每个线程都可以访问其它线程的存 ...
- YARN学习笔记(一)——YARN的简介
YARN的简介 什么是YARN MRv1的架构和缺陷 经典MapReduce的局限性 解决可伸缩性问题 YARN的架构 一个可运行任何分布式应用程序的集群 YARN中的应用程序提交 YARN的其他特性 ...
- 大数据计算框架Hadoop, Spark和MPI
转自:https://www.cnblogs.com/reed/p/7730338.html 今天做题,其中一道是 请简要描述一下Hadoop, Spark, MPI三种计算框架的特点以及分别适用于什 ...
- 深度学习GPU集群管理软件 OpenPAI 简介
OpenPAI:大规模人工智能集群管理平台 2018年5月22日,在微软举办的“新一代人工智能开放科研教育平台暨中国高校人工智能科研教育高峰论坛”上,微软亚洲研究院宣布,携手北京大学.中国科学技术大学 ...
- apache基金会开源项目简介
apache基金会开源项目简介 项目名称 描述 HTTP Server 互联网上首屈一指的HTTP服务器 Abdera Apache Abdera项目的目标是建立一个功能完备,高效能的IETF ...
- NVIDIA GPU架构与原理分析(一)——GPU简介与主流Fermi、Kepler架构GPU概述
1 GPU简介 图形处理单元GPU英文全称Graphic Processing Unit,GPU是相对于CPU的一个概念,NVIDIA公司在1999年发布GeForce256图形处理芯片时首先提出GP ...
- zz神经网络模型量化方法简介
神经网络模型量化方法简介 https://chenrudan.github.io/blog/2018/10/02/networkquantization.html 2018-10-02 本文主要梳理了 ...
- python学习--大数据与科学计算第三方库简介
大数据与科学计算 库名称 简介 pycuda/opencl GPU高性能并发计算 Pandas python实现的类似R语言的数据统计.分析平台.基于NumPy和Matplotlib开发的,主要用于 ...
- ASP.NET Core 1.1 简介
ASP.NET Core 1.1 于2016年11月16日发布.这个版本包括许多伟大的新功能以及许多错误修复和一般的增强.这个版本包含了多个新的中间件组件.针对Windows的WebListener服 ...
随机推荐
- gif 录制 屏幕 工具
写博客或者提出问题时,很多时候需要gif才能说明问题 window录制攻略 https://pan.baidu.com/s/1gdCX1Gf mac录制攻略 第一步:打开mac内置的播放器QuickT ...
- [学习笔记]ESXI学习记录
vmware workstation环境下,可以为虚拟机添加多块网卡.在虚拟机上单击右键,settings 界面,选中network adapter,然后通过custom选项,可以将多个不同的虚拟机使 ...
- 详解在bash脚本中如何获取自身路径
DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" 这是stac ...
- RT-Thread相同优先级线程的调度
/* 静态线程的 线程堆栈*/ ]; ]; /* 静态线程的 线程控制块 */ static struct rt_thread thread_test1; static struct rt_threa ...
- Latex公式换行、对齐
http://blog.sina.com.cn/s/blog_64827e4c0100vnqu.html 换行后等式对齐 \begin{equation}\begin{aligned}R(S_2)&a ...
- 5.PHP内核探索:多进程/线程的SAPI生命周期
多进程的SAPI生命周期 通常PHP是编译为apache的一个模块来处理PHP请求.Apache一般会采用多进程模式, Apache启动后会fork出多个子进程,每个进程的内存空间独立,每个子进程都会 ...
- hiho47 : 拓扑排序·一
时间限制:10000ms 单点时限:1000ms 内存限制:256MB 描述 由于今天上课的老师讲的特别无聊,小Hi和小Ho偷偷地聊了起来. 小Ho:小Hi,你这学期有选什么课么? 小Hi:挺多的,比 ...
- android imageButton 点击按钮前中后,按钮颜色的变化
我们在开发的过程中,往往为了美化界面的需要,会修改按钮的默认外观,而因为Android中的按钮有三种状态—默认,被点击,被选中.所以,如果要改变按钮的外观,需要对这三种情况都做出修改,也许在以往,我们 ...
- Myeclipse配置 项目编码格式
修改MyEclipse 工作空间的编码 修改之后,在该工作空间下创建的任何项目,编码都是UTF-8,既,该项目下所有文件都是utf-8 格式,工作空间影响项目,项目影响文件 General --> ...
- 用正则验证字符串格式,形如:A)XXX B)XXXX C)XXX
今天遇到个小功能,要验证某个英文选项是否正确,例如:A)accumulate B)circling C)communities D)competition E)domestic F)financi ...