一、Mac下OpenMPI的安装

所用电脑:MacBook Pro,OSX 10.11.2

  1. 从openmpi官网下载相应版本:OpenMPI 1.8下载
  2. 解压文件

    双击解压或者tar zxvf openmpi***.tar.gz
  3. 指定安装路径

    进入解压的目录,指定要安装的路径:./condigure --prefix=/usr/local
  4. 编译mpi源码

    make all
  5. sudo make安装

    sudo make install
  6. 检查是否加入环境变量

    echo $PATH 查看MPI所在的/usr/local/bin是否在环境变量PATH中
  7. 编译examples源码并运行

    首先进入examples文件夹,该文件夹下有一些MPI的简单源码例子

    编译hello world的C程序,mpicc hello_c.c -o test

    或者编译hello world的C++程序,mpicxx hello_cxx.cc -o test

    这样生成名叫test的可执行程序,然后使用mpirun执行:mpirun -np 2 ./test //np指定使用几个进程

二、MPI函数简单说明

下面以examples里的hello_c.c为例说明MPI常用函数

int myid, numprocess;
int namelen;
char processor_name[MPI_MAX_PROCESSOR_NAME]; MPI_Init(&argc, &argv);
MPI_Comm_rank(MPI_COMM_WORLD, &myid);
MPI_Comm_size(MPI_COMM_WORLD, &numprocess);
MPI_Get_processor_name(processor_name, &namelen); fprintf(stderr, "To you : Process %d of %d on %s\n", myid, numprocess, processor_name);
MPI_Finalize();
return 0;
  1. 初始化 MPI_Init(int argc, char **argv)

    参数:argc变量个数,argv变量数组
  2. 获取当前进程标识 MPI_Comm_rank(MPI_Comm comm, int rank)

    参数:comm该进程所在的通信域句柄,rank该进程在通信域中的标识号
  3. 获取通信域进程总数 MPI_Comm_size(MPI_Comm comm,int size)

    参数:comm该进程所在的通信域句柄,size通信域comm中的进程总数
  4. 获取本线程机器名 MPI_Get_processor_name(char *name,int resultlen)

    参数:name为返回的机器名字符,resultlen为机器名长度
  5. 结束函数 MPI_Finalize()

另外,MPI有预定义的数据类型与C语言中的对应关系如下:

MPI数据类型 对应C数据类型

MPI_CHAR signed char

MPI_SHORT signed short int

MPI_INT signed int

MPI_LONG signed long int

MPI_UNSIGNED_CHAR unsigned char

MPI_UNSIGNED_SHORT unsigned short int

MPI_UNSIGNED unsigned int

MPI_UNSIGNED_LONG unsigned long int

MPI_FLOAT float

MPI_DOUBLE double

MPI_LONG_DOUBLE long double

MPI_BYTE 无相应数据类型

MPI_PACKED 无相应数据类型

MPI_LONG_LONG_INT long long int

MPI初学-安装及OpenMPI函数说明的更多相关文章

  1. win 10 在vs2017下对mpi的安装以及认识

    这里我先对MPI进行一下简单的介绍,MPI的全称是Message Passing Interface,即消息传递接口. 它并不是一门语言,而是一个库,我们可以用Fortran.C.C++结合MPI提供 ...

  2. OpenGL初学:安装配置与第一个程序

    OpenGL初学:安装配置与第一个程序 2014年10月12日 12:37:03 process-z 阅读数:12413 标签: opengl安装教程 更多 个人分类: OpenGL   计算机图形学 ...

  3. Greenplum入门——基础知识、安装、常用函数

    Greenplum入门——基础知识.安装.常用函数 2017年10月08日 22:03:09 在咖啡里溺水的鱼 阅读数:8709    版权声明:本文为博主原创,允许非商业性质转载但请注明原作者和出处 ...

  4. c#初学12-12-为什么mian函数必须是static的

    c#初学12-12-为什么mian函数必须是static的 c#程序刚开始启动的时候都会有唯一一个入口函数main()函数, 而非静态成员又称实例成员,必须作用于实例.在程序刚开始运行的时候,未建立任 ...

  5. Python---编辑器安装和print函数

    Python---编辑器安装和print函数 -------------------------------------------------------- 一.Python是什么? Python是 ...

  6. nodejs初学————安装篇(iis8.5+windows8.1)

    nodejs很久前就想玩玩,不过一直没时间,昨晚花了4个小时来捣鼓到iis上架设成功了,废话不说了. PS:我的系统是windows8.1 x64,所以自带iis8.5的,下载的文件也是x64的. N ...

  7. Sublime Text 2/3安装CTags实现函数跳转

    安装ctags 下载 ctags程序,放到目录D:/ctags/下 安装ctags插件 1. 打开Sublime Text 2. Preferences->Package Control-> ...

  8. Win10系统下Anaconda下安装多种Python函数库

    建议直接安装Anaconda,这是一个包含Numpy,Pandas,Sklearn等函数库的计算机科学软件包,下面的软件可以在此环境下进行安装下载. 一.计算机视觉 1. OpenCV图像处理 在ht ...

  9. sublime text 3中安装ctags支持函数跳转,安装convertToUtf8支持中文步骤[工具篇]

    sublime text x是个很不错的编辑器,但是各种插件都需要自己安装,有时也有点不方便,尤其是自己还不不知道怎么安装的时候.开发中经常用到的,函数跳转,就是一个比较难安装的东西,记录如下(系统为 ...

随机推荐

  1. javascript url 相关函数(escape/encodeURL/encodeURIComponent区别)

    JS获取url参数及url编码.解码 完整的URL由这几个部分构成:scheme://host:port/path?query#fragment ,各部分的取法如下: window.location. ...

  2. 解决 SQLite数据库 no current row

    场景: SQLite数据库,在查询数据时,提示 标题错误异常.查看堆栈,是在SQLiteDataReader.CheckValidRow 时报错. 数据查询是通过 adapter.Fill(dt) 进 ...

  3. c++随机数生成

    算机的随机数都是由伪随机数,即是由小M多项式序列生成的,其中产生每个小序列都有一个初始值,即随机种子.(注意: 小M多项式序列的周期是65535,即每次利用一个随机种子生成的随机数的周期是65535, ...

  4. vim制作c的IDE

    编译vim源码 (1)安装依赖 sudo apt-get install python-dev python3-dev ruby-dev libx11-dev libgtk2.0-dev libgtk ...

  5. Navicat(连接)-1

    连接 要在 Navicat 开始使用你的服务器,你要首先用连接窗口创建一个或多个连接.如果你是一个服务器新手和不肯定如何工作,你可能想看看: MySQL 用户手册 Oracle 数据库文件 Postg ...

  6. CE_现金的利息设定和计算(案例)

    2014-07-15 Created By BaoXinjian 一.摘要 存款利率指客户按照约定条件存入银行帐户的货币,一定时间内利息额同贷出金额即本金的利率.有活期利率和定期利率之分,有年/月/日 ...

  7. HDU Count the string+Next数组测试函数

    链接:http://www.cnblogs.com/jackge/archive/2013/04/20/3032942.html 题意:给定一字符串,求它所有的前缀出现的次数的和.这题很纠结,一开始不 ...

  8. HDU 2196 Computer 树形DP 经典题

    给出一棵树,边有权值,求出离每一个节点最远的点的距离 树形DP,经典题 本来这道题是无根树,可以随意选择root, 但是根据输入数据的方式,选择root=1明显可以方便很多. 我们先把边权转化为点权, ...

  9. Web Penetration Testing 渗透 通信信息安全

    参考 http://download.csdn.net/detail/jason571/8146587 一.操作系统原理,JavaScript,http/https的运行原理,Ajax,SQL等技术基 ...

  10. Linux tar指令

    linux 下的命令真是太多了.最近在看<Linux Shell编程从初学到精通>一书.该书有468页,很可惜我并不是那种很有耐性一个例子一个例子地跟着做的人,最多在看到些不太清楚的地方会 ...