MPI并行程序设计学习整理
来源:互联网 发布:网络质量监控 美团 编辑:程序博客网 时间:2024/06/04 20:14
时间坐标:2017.06 大三下
MPI并行编程是在大数据处理中很有意义的方法,能够在串行的基础上提高程序运行的效率,并行的去计算海量的数据。
这篇文章可能会随着学习的深入不断的更新~
Introduction to MPI
学MPI的时候,老师首先给我们回顾了一下并行编程的一些模式:
并行可以分为两种:一种是任务并行,另一种是数据并行,根据这两种性质可以分为以下4种模式:
SIMD(Single Instruction Multiple Data):单指令多数据模式
SPMD(Single Program Multiple Data):单程序多数据模式 (这种貌似是最常用的模式)
MIMD(Multiple Instruction Multiple Data):多指令多数据模式
MPMD(Multiple Program Multiple Data):多程序多数据模式然后介绍到底什么是MPI:
MPI——Message Passing Interface 信息传递接口
这里直接把百度百科放过来:
MPI是一个跨语言的通讯协议,用于编写并行计算机。支持点对点和广播。MPI是一个信息传递应用程序接口,包括协议和和语义说明,他们指明其如何在各种实现中发挥其特性。MPI的目标是高性能,大规模性,和可移植性。MPI在今天仍为高性能计算的主要模型。
主要的MPI-1模型不包括共享内存概念,MPI-2只有有限的分布共享内存概念。 但是MPI程序经常在共享内存的机器上运行。在MPI模型周边设计程序比在NUMA架构下设计要好因为MPI鼓励内存本地化。
尽管MPI属于OSI参考模型的第五层或者更高,他的实现可能通过传输层的sockets和Transmission Control Protocol (TCP)覆盖大部分的层。大部分的MPI实现由一些指定惯例集(API)组成,可由C,C++,Fortran,或者有此类库的语言比如C#, Java or Python直接调用。MPI优于老式信息传递库是因为他的可移植性和速度。
与OpenMP并行程序不同,MPI是一种基于信息传递的并行编程技术。消息传递接口是一种编程接口标准,而不是一种具体的编程语言。简而言之,MPI标准定义了一组具有可移植性的编程接口。
2.有关MPI的初始化和常用函数
以下几个基本是MPI每个程序都会有的,
① MPI_Comm comm = MPI_COMM_WORLD;
② MPI_Comm_Init(&argc,&argv); //初始化MPI执行环境,建立多个MPI进程之间的联系,为后续通信做准备
③MPI_Comm_Rank(comm,&rank); //用来标识各个MPI进程,给出调用该函数的进程的进程号,返回整型的错误值。两个参数:MPI_Comm类型的通信域,标识参与计算的MPI进程组; &rank返回调用进程中的标识号
④ MPI_Comm_Size(comm,&size); //用来标识相应进程组中有多少个进程
⑤ MPI_Finalize(); //结束MPI执行环境
- MPI并行程序设计学习整理
- 【MPI学习3】MPI并行程序设计模式:不同通信模式MPI并行程序的设计
- 【MPI学习3】MPI并行程序设计模式:不同通信模式MPI并行程序的设计
- 【MPI学习4】MPI并行程序设计模式:非阻塞通信MPI程序设计
- 【MPI学习5】MPI并行程序设计模式:组通信MPI程序设计
- 【MPI学习6】MPI并行程序设计模式:具有不连续数据发送的MPI程序设计
- 【MPI学习4】MPI并行程序设计模式:非阻塞通信MPI程序设计
- 【MPI学习5】MPI并行程序设计模式:组通信MPI程序设计
- 【MPI学习6】MPI并行程序设计模式:具有不连续数据发送的MPI程序设计
- MPI并行程序设计实例教程
- 并行程序设计---MPI
- 【MPI学习7】MPI并行程序设计模式:MPI的进程组和通信域
- 【MPI学习7】MPI并行程序设计模式:MPI的进程组和通信域
- MPI 学习 -- 高性能计算之并行编程技术 --- MPI并行程序设计 都志辉编著
- mpi并行程序设计 启动 mpdboot
- 【MPI学习2】MPI并行程序设计模式:对等模式 & 主从模式
- 【MPI学习2】MPI并行程序设计模式:对等模式 & 主从模式
- MPI并行程序设计的环境配置
- Entity FrameWork介绍
- 线程死锁
- 链表插入排序
- solr 搜索建议suggest
- List
- MPI并行程序设计学习整理
- 移动页面HTML5自适应手机屏幕宽度
- tomcat通过分配不同端口部署多个项目
- linux学习之ISCSI网络共享服务
- 安装activex控件(64位机器MSComm32)
- 记录AWS使用产生的EBS费用
- spark源码之RDD(1)partition、dependence、persist
- 类加载机制及类加载器加载Class流程
- 在Ubuntu上下载、编译和安装Android最新源代码