04-MPI几个基本函数
##1、MPI程序基本结构
注意,所有的MPI标识符,包括函数标识符,都以MPI前缀开头,后面紧跟一个大写字母和一系列小写字母以及下划线。所有的MPI常数都是以MPI开头的大写字母和下划线的字符串。
##2、MPI原始数据类型
##3、MPI基本函数
- MPI_Init
int MPI_Init(int*argc, char *argv[])
每一个被MPI程序调用的第一个MPI函数都是MPI_Init。该函数指示系统完成所有初始化工作,以备对后续MPI库的调用进行处理。
调用MPI_Init并不一定是程序中第一个执行语句。实际上,它甚至不需要放在main函数中。唯一的要求是MPI_Init要在调用任何MPI函数之前调用,除MPI_Initialized外。
在C接口中,MPI系统通过argc和argv得到命令行参数,并且会把MPI系统专用的参数删除,留下用户的解释参数。
- MPI_Initialized
int MPI_Initialized(int* flag)
唯一可在MPI_Init前使用的函数,用来检测MPI系统是否已经初始化,已经调用MPI_Init,返回flag=true,否则返回flag=false。
- MPI_Comm_rank
int MPI_Comm_rank(MPI_Comm comm, int* rank)
当MPI初始化后,每一个活动进程变成了一个叫MPI_COMM_WORLD的通信域中的成员。一个通信域是一个不透明的对象,提供了在进程之间传递消息的环境。在一个通信域内的进程是有序的,一个进程的序号便是它在整个排序中的位置。在一个有p个进程的通信域中,每一个进程有一个唯一的序号(ID号),取值为0~p-1。
可以使用进程的序号来决定它负责计算和(或)数据集的哪一部分,进程可以通过调用函数MPI_Comm_rank来确定它在通信域中的序号
- MPI_Comm_size
int MPI_Comm_size(MPI_Comm comm, int* size)
进程可以通过调用函数MPI_Comm_size来确定一个通信域中的进程总数。
- MPI_Finalize
int MPI_Finalize(void)
退出MPI系统,在一个进程执行完其全部MPI函数调用后,将调用函数MPI_Finalize,从而让系统释放分配给MPI的资源(例如内存等)。
每个进程都必须调用,使用后不准许调用任何MPI函数,若不执行MPI退出函数,进程可能被悬挂,用户在调用该函数前,应确保非阻塞通讯结束。
- MPI_Abort
int MPI_Abort(MPI_Comm comm, int errorcode)
异常终止MPI程序,在出现了致命错误而希望异常终止MPI程序时执行,MPI系统会设法终止comm通信器中的所有进程,输入整形参数errocode,将被作为进程的退出码返回给系统。
- MPI_Get_processor_name
int MPI_Get_processor_name(char* name, int* resultlen)
获取处理器的名称,在返回的name中存储所在处理器的名称;resultlen存放返回名字所占字节。
应提供参数name不少于MPI_MAX_PROCESSOR_NAME个字节的存储空间。
- MPI_Get_version
int MPI_Get_version(int* version, int* subversion)
获取MPI版本号,若MPI版本号为2.0, 则返回的version=2,subversion=0
- MPI_Wtime
double MPI_Wtime(void)
获取墙上时间,返回调用时刻的墙上时间,用浮点数表示秒数;经常用来计算程序运行时间。
04-MPI几个基本函数相关推荐
- Ubuntu 16.04 安装 MPI(Message Passing Interface)
参考 MPI 安装在 Ubuntu16.04 1. 下载源文件 镜像网站 https://www.mpich.org/static/downloads/3.3.2/ 官方网站 http://www.m ...
- 虚拟机ubuntu14.04编译MPI版本NAMD
最近,尝试用ubuntu编译NAMD,由于以前对NAMD完全未接触过,也不懂该专业的相关知识,因此作为一个外行人尝试编译NAMD,这里记录一下粗略过程: 1.首先,需要搭建MPI并行环境:http:/ ...
- 用gdb调试mpi程序的一些心得
Linux下MPI (Message Passage Interface) 的程序不太好调试,在windows下vs2005以上的IDE有集成的简便MPI调试工具,没有用过,有兴趣的可以试验一下.下面 ...
- Ubuntu 18.04 LTS安装配置驱动、CUDA9.1和Amber18 AmberTools18
目录 1. 环境 2. 驱动安装 2.1 驱动下载:https://www.nvidia.com/download/driverResults.aspx/132541/ 2.2.删除原有NVIDIA驱 ...
- 扩增子分析QIIME. 3以管理员安装QIIME1.9.1至Ubuntu16.04
Install QIIME 1.9.1 on Ubuntu 16.04 Desktop LTS x64 所有公共软件.数据库,全部以yongxin(我的用户名)用户安装,为使计算机所有用户使用,此用户 ...
- Ubuntu16.04 安装 OpenMPI4.0.0
Ubuntu16.04 安装 OpenMPI4.0.0 文章目录 OpenMPI 简介 一.OpenMPI 1.0.0版本下载 二.OpenMPI 安装步骤 1.解压并进行配置 2.Build 并安装 ...
- 编译分布式并行版caffe(Open MPI)教程
caffe版本:https://github.com/yjxiong/caffe 使用环境: 1 CentOS release 6.6 (Final) 2 CUDA8.0 3 CuDNN6.0 4 O ...
- MPI编程及性能优化
第1节 MPI简介 1.1 MPI及其历史 与OpenMP相似,消息传递接口(Message Passing Interface,简称MPI)是一种编程接口标准,而不是一种具体的编程语言.该标准是由消 ...
- 多台工作站搭建MPI并行环境
因为所作研究工作计算量真是太大了,一台z840的48核工作站还是感觉有点慢,所以就想着自己搭建一个小的集群环境,正好办公室里面有台人家不用z800,所以就拿过来试了一下. 折腾了两天,终于在两台hp ...
- Ubuntu 15.04 安装 boost-python
1. 安装依赖库 sudo apt-get install python-dev sudo apt-get install mpi-default-dev #安装mpi库 sudo apt-get i ...
最新文章
- mysql 5.6 innodb_MYSQL 5.6中禁用INNODB引擎
- C#-DataSet和DataTable详解
- Swift - 使用CoreLocation实现定位(经纬度、海拔、速度、距离等)
- java堆栈句柄,深入了解JVM—内存区域
- Yolo家族算法分析
- centos python_在centos上配置python的虚拟开发环境
- Unity3D卡牌手游《X三国》源码前后端完整下载安卓+IOS双端
- 视频教程-【深入理解计算机网络】讲师解读计算机网络原理视频课程(上)-计算机网络
- js日期转换成时间戳
- 软考-高项计算1--投资回收周期计算(涉及概念:投资回收期 折现因子 净现值 累计净现值 现金流 累计净现金流)
- Oracle技巧:如何诊断一些未预料的 Oracle 错误(ORA-NNNN)
- 用unity制作2d钟表
- Java精品文章收藏(百度文库)
- 计算机网络本直通线的制作方法,一种用于计算机网络对接网线接头的制作方法...
- EXCEL中的数据分析—抽样分析
- 狼书三卷终大成,狼叔亲传Node神功【留言送书】
- php算命,GitHub - baidan/efairy: 基于php的算命网站
- Flowable实战-Camel使用
- 创建和调用存储过程:查询Stu数据库中某个同学的选修课程的信息,包括学号,姓名,课程名称,成绩
- 初识 Box2D世界