MPI数据通信常用函数
MPI数据通信常用函数:
- int MPI_Init(int *argc, char **argv[]);
功能:用于并行环境初始化,其后面的代码到MPI_Finalize()函数之前的代码在每个进程中都会被执行一次。
除MPI_Initialized()外,其余MPI函数都应在其后被调用。
MPI系统将通过argc,argv得到命令行参数,即main函数必须带参数,否则会出错。 - int MPI_Finalize(void);
功能:退出MPI系统,所有进程正常退出都必须调用。它用于并行代码的结束,即结束除主进程外其它进程。
注意:串行代码仍可在主进程(rank=0)上运行,但不能再有MPI函数。 - int MPI_Comm_size(MPI_Comm comm, int *size);
功能:获取进程个数size。
参数:指定一个通信子,也指定了一组共享改空间的进程,这些进程组成该通信子的group(组)。获得通信子comm中规定的group包含的进程的数量。 - int MPI_Comm_rank(MPI_Comm comm, int *rank);
功能:得到本进程在通信空间中的rank值,即在组中的逻辑编号(该rank值为0到p-1间的整数,相当于进程的ID) - int MPI_Send(void *buff, int count, MPI_Datatype datatype, int dest, int tag, MPI_Comm comm);
功能:发送通信内容。
参数说明:
buff:要发送的数据
count:发送消息的数据长度
datatype:发送的数据类型
dest:发送的目的进程号
tag:消息标签,接收方需要有相同的消息标签才能接收该消息
comm:通讯域,表明要向哪个组发送消息。 - int MPI_Recv(void *buff, int count, MPI_Datatype datatype, int source, int tag, MPI_Comm comm, MPI_Status *status);
功能:接收通信内容。
参数说明:
buff:接收消息要保存的变量
count:接收消息的数据长度
datatype:接收消息的数据类型
dest:接收端进程号
tag:消息标签,需要与发送方的tag值相同的消息标签才能接收该消息
comm:通讯域
status:消息状态。接收函数返回时,将在这个参数指示的变量中存放实际接收消息的状态信息,包括消息的源进程标识,消息标签,包含的数据项个数。 - MPI_Bcast
功能:从单个进程向同一个通信子中的所有其他进程发送消息。 - MPI_Scatter
功能:在各个进程间分配一个数组的元素。如果数组有n个元素,进程数量为p,则第一组的n/p个元素发送到进程0,第二组n/p个元素发送到进程1,以此类推。 - MPI_Gather
功能:是MPI_Scatter的逆操作。如果每个进程都存储了包含m个元素的子数组,那么MPI_Gather将收集这些元素到一个特定的进程中,先从进程0收集元素,然后是进程1,以此类推。 - MPI_Allgather
功能:类似MPI_Gather,它收集所有的元素并分发给所有进程。 - MPI_Barrier
功能:用于同步进程,在同一个通信子中的所有进程调用该函数前,所有调用MPI_Barrier的进程都不能返回。
MPI中四个重要概念:
1) 消息数据类型
2) 通信子
3) 通信操作
4) 虚拟拓扑
SPMD形式的消息传递程序主要步骤:
1) 数据划分:尽量考虑负载平衡,存储空间的均衡使用以减少处理器之间的通信
2) 优化通信:尽量提高计算/通信比,数据就地使用,合并短消息成一个长消息进行传输
3) 全局操作:将各处理器的局部结果组合起来形成整个问题的解,这样的操作包括:全局同步、播送、规约、前缀运算、收集/散播等。
MPI数据通信常用函数相关推荐
- MPI 集合通信函数 MPI_Reduce(),MPI_Allreduce(),MPI_Bcast(),MPI_Scatter(),MPI_Gather(),MPI_Allgather(),MPI_S
MPI 集合通信函数 MPI_Reduce(),MPI_Allreduce(),MPI_Bcast(),MPI_Scatter(),MPI_Gather(),MPI_Allgather(),MPI_S ...
- MPI中常用的通信方法
MPI中常用的通信方法 问题描述 梯形法求解积分的串行程序 使用MPI并行化 使用树形结构优化通信 使用MPI_Reduce优化通信 使用MPI_Bcast优化通信 使用派生数据类型优化通信 使用结构 ...
- php内置常用函数是哪些,PHP常用函数有哪些
PHP常用函数有哪些 导语:PHP主要通过函数实现一些功能,那PHP常用函数有哪些呢?下面就由小编为大家介绍一下,欢迎大家阅读! 数学函数 1.abs(): 求绝对值 $abs = abs(-4.2) ...
- Lua基本语法-书写规范以及自带常用函数
Lua基本语法-书写规范和常用函数 本文提供全流程,中文翻译. Chinar坚持将简单的生活方式,带给世人! (拥有更好的阅读体验 -- 高分辨率用户请根据需求调整网页缩放比例) 1 String O ...
- SQLserver 常用函数适用方法(转载)
SQL Server 常用函数使用方法(持续更新) 之前就想要把一些 SQL 的常用函数记录下来,不过一直没有实行...嘿嘿... 直到今天用到substring()这个函数,C# 里面这个方法起始值 ...
- python Pool常用函数用法总结
在本篇内容里小编给大家整理的是一篇关于python Pool常用函数用法总结内容,有需要的朋友们可以学习下. 1.说明 apply_async(func[,args[,kwds]):使用非堵塞调用fu ...
- ACM——常用函数总结
常用函数总结: 一.全排列:next_permutation 二.读写优化 三.返回容器内最大最小值 四.复制函数 五.容器删除函数 六.容器填充函数 七.查找函数 八.字符串转换整数 九.欧拉筛 十 ...
- e class connect.php,剖析帝国CMS核心文件e/class/connect.php中的常用函数
帝国CMS下的e/class/connect.php文件中包含了帝国CMS常用的一些核心功能函数,加深对connect.php文件中常用函数的了解对于帝国CMS的二次开发来说非常重要. 现将帝国CMS ...
- PHP访问mysql的常用函数,PHP操作MySQL数据库常用函数
PHP操作MySQL数据库常用函数 php操作mysql数据库,俗称天龙八步: 第一步:连接数据库 第二步:判断连接错误 第三步:选择数据库 第四步:设置字符集 第五步:准备SQL语句 第六步:执行并 ...
最新文章
- Java 判断一个字符串是否为数字类型
- 在Linux和Windows操作系统中socket program的兼容问题
- 【安全牛学习笔记】其他途径
- BZOJ 3524主席树裸题 (雾)
- Magento 2开发教程 - 创建新模块
- 语音会议源代码_线上语音群聊神器!开会开黑都好用,免注册、免安装,还免费...
- Qt学习之路(51): QByteArray和QVariant
- MFC在指定控件区域内进行一些操作
- localhost拒绝访问的解决方法
- 《第一行代码第三版》总结篇
- 星空之夜_hash+dfs
- vue+node项目部署上线
- 深度学习在搜索业务中的探索与实践(美团)
- Linux下编译程序/usr/bin/ld: cannot find -l*错误的解决方法
- sql server 2008 r2 忘记sa密码, 没有window账户登录, 解决办法
- DNS解析为什么不生效?DNS解析不生效原因分析
- mysql提交数据时会丢失一部分_技术|MYSQL数据丢失讨论
- 计算机错误651是什么故障,网络连接651错误是什么意思(教你一招解决问题)
- 基于python的opencv相机标定(采用黑白棋盘格标定板)
- 华科计算机学院院长冯丹,华中科技大学