[转]MPI--MPI+VS2010 配置及编译-程序员宅基地

一  下载mpi for windows

     在这一块我浪费了很多时间。首先windows下(自己电脑的多核)和一般的工作站是不一样的。windos为了兼容mpi,自己做了一个基于一般电脑的MPI实现,如果要安装真正意义的mpi,在intel上有。我这里是为了在自己笔记本上学习mpi,用的是微软的HPC Pack 2008 R2 MS-MPI Redistributable Package with Service Pack 4。

   不过如果是想在自己笔记本上用fortran版的mpi,即用fortran编译mpi,那么和这里的不一样。这里是c的。fortran的以后添加。

二 安装mpi

   我的电脑是64位的,所以安装的是mpi_x64.msi,安在C:\Program Files\Microsoft HPC Pack 2008 R2,

三 配置vs2010

   3.1配置目录,即加载Include和Lib库

 3.2配置运行库

 

3.3预处理处理,这里至于为什么,我没搞懂,

 

3.4加载依赖项

 

四 编译

这是一个测试例子,在vs2010下编译生成xx.exe文件(具体看自己的命名)

  1.  1 /*
     2   功能:mpi点对点通信
     3   时间:2012.12.13
     4 */
     5 #include<stdio.h>
     6 #include<string.h>
     7 #include"mpi.h"
     8 
     9 #define BUFLEN 512
    10 int main(int argc, char *argv[])
    11 {
    12     int myid,numprocs,next,namelen;
    13     char buffer[BUFLEN],processor_name[MPI_MAX_PROCESSOR_NAME];
    14     MPI_Status status;
    15 
    16     //
    17     MPI_Init(&argc, &argv);
    18     MPI_Comm_size(MPI_COMM_WORLD, &numprocs);
    19     MPI_Comm_rank(MPI_COMM_WORLD, &myid);
    20     MPI_Get_processor_name(processor_name, &namelen);
    21 
    22     printf("Process %d on %s \n", myid, processor_name);
    23     printf("Process %d of %d \n", myid, numprocs);
    24     memset(buffer, 0, BUFLEN*sizeof(char));
    25     if(myid == numprocs-1)
    26     {
    27         next = 0;
    28     }
    29     else
    30     {
    31         next = myid+1;
    32     }
    33     if(myid == 0)
    34     {
    35         strcpy(buffer,"hello there");
    36         printf("%d sending '%s' \n",myid, buffer);fflush(stdout);
    37         MPI_Send(buffer,strlen(buffer)+1, MPI_CHAR, next, 99, MPI_COMM_WORLD);
    38         printf("%d receving \n", myid);fflush(stdout);
    39         MPI_Recv(buffer, BUFLEN, MPI_CHAR, MPI_ANY_SOURCE, 99, MPI_COMM_WORLD, &status);
    40         printf("%d received '%s' \n", myid, buffer);fflush(stdout);
    41     }
    42     else
    43     {
    44         printf("%d receiving \n",myid);fflush(stdout);
    45         MPI_Recv(buffer, BUFLEN, MPI_CHAR, MPI_ANY_SOURCE, 99, MPI_COMM_WORLD, &status);
    46         printf("%d received '%s' \n", myid, buffer);fflush(stdout);
    47         MPI_Send(buffer,strlen(buffer)+1, MPI_CHAR, next, 99, MPI_COMM_WORLD);
    48         printf("%d sending '%s' \n",myid, buffer);fflush(stdout);
    49     }
    50     MPI_Finalize();
    51     return 0;
    52 }

     


五 运行

因为mpi是有命令行输入的,需要mpiexec.exe来运行:

具体的命令可以help 一下,自己摸索吧

转载于:https://www.cnblogs.com/mrbin/p/3469303.html

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_33843947/article/details/93670106

智能推荐

后台服务守护进程神器pm2介绍及使用_pm2 执行go命令-程序员宅基地

文章浏览阅读1.4k次。linux的后台服务程序需要在后台一直运行。如果通过ssh访问临时启动的,会话一结束就直接关闭了服务。想让服务在后台一直运行且永远不挂掉,推荐后台服务守护进程神器pm2,强大且适用于各种语言的后台服务程序。_pm2 执行go命令

深度桌面操作系统架构设计-程序员宅基地

文章浏览阅读2.5k次,点赞4次,收藏23次。作者 | ManateeLazyCat 链接 |https://my.oschina.net/ManateeLazyCat/blog/831104今天就结合深度桌面操作系统给大家..._x11/xcb

亮剑:PHP,我的未来不是梦(10)-程序员宅基地

文章浏览阅读37次。1.21 工作经验都包括什么这部分就是我们前面提过的五关之一,筛选关!也就是我们靠什么来打动看我们简历的人!换句话说就是,他们希望我们具有哪些技术和能力?当然,针对不同的应聘人员,关注点也不一样!前面已经说过了,所谓的工作经验就是“应聘这个职位所必需的技术和能力”,另外,还有其他的,很容易被忽略的能力!那么这个技术和能力以及其他的能力又具体指的是什么呢? 这里只从实际的情况出发...

时序约束——set_max_delay和set_min_delay用法-程序员宅基地

文章浏览阅读6.8k次,点赞2次,收藏57次。实现约束_set_max_delay

在Linux下使用RAID(1):介绍 RAID 的级别和概念_在 linux 下使用 raid(一):介绍 raid 的级别和概念-程序员宅基地

文章浏览阅读289次。RAID 的意思是廉价磁盘冗余阵列(Redundant Array of Inexpensive Disks),但现在它被称为独立磁盘冗余阵列(Redundant Array of Independent Drives)。早先一个容量很小的磁盘都是非常昂贵的,但是现在我们可以很便宜的买到一个更大的磁盘。Raid 是一系列放在一起,成为一个逻辑卷的磁盘集合。 伦理片 http://www.dot_在 linux 下使用 raid(一):介绍 raid 的级别和概念

java计算机毕业设计课程答疑系统源程序+mysql+系统+lw文档+远程调试_一梵程序-程序员宅基地

文章浏览阅读92次。java计算机毕业设计课程答疑系统源程序+mysql+系统+lw文档+远程调试。前端技术:Layui、HTML、CSS、JS、JQuery等技术。ssm基于SSM+VUE技术的小区车辆档案车位管理系统设计与实现。springboot基于SpringBoot的自助旅游导航系统。springboot基于springboot的社会公益平台。JSP+sql图书管理系统(源程序+论文+数据库+录像)ssm+sqlserver海城同泽中学图书仓库管理系统。ssm+sqlserver长大工院竞赛系统。_一梵程序

随便推点

在Ubuntu 12.04 64 位 搭载Android4.4源码编译环境-程序员宅基地

文章浏览阅读67次。在Ubuntu 12.04 64 位 搭载Android4.4源码编译环境 一、准备工作:(1) VMare Workstation 10(2)Ubuntu12.04 64bit(3) JDK1.6(4)Android 4.4 源码(PS:...

图像数据增广_图像增广-程序员宅基地

文章浏览阅读1.2k次,点赞19次,收藏24次。本文主要介绍了图像数据的几种增广方式,其中包括随机翻转、随机裁剪和随机颜色变换等,使用时一般在训练集上综合使用以达到鲁棒效果。_图像增广

8种编程语言对比,究竟谁更好用_算法用什么语言写比较好-程序员宅基地

文章浏览阅读977次。8种编程语言对比,究竟谁更好用_算法用什么语言写比较好

数据库oracle实际使用的内存---AIX产生大量的swap反思_oracle数据库内存64,sga40,会占用swap吗-程序员宅基地

文章浏览阅读796次。来看看oracle实际使用的内存:select sum(pga_alloc_mem)/1024/1024/1024 Alloc from v$process ; +select sum(value)/1024/1024/1024 as b from v$sga + 进程本身消耗的内存。操作系统频繁使用swap,原因基本是系统内存不够用了。从数据库的内存配置来看,128G总内..._oracle数据库内存64,sga40,会占用swap吗

Matlab 仿真——直流电机速度控制(1)直流电机建模_直流电机系统建模matlab-程序员宅基地

文章浏览阅读2.2w次,点赞31次,收藏228次。Matlab 仿真——直流电机速度控制(1)直流电机建模(搬运自:https://ctms.engin.umich.edu/CTMS/index.php?example=MotorSpeed&section=SystemModeling)该系列我们学习如何对直流电机进行速度控制物理模型一个直流电机模型如下所示:为了简化讨论,假设转子和转轴都是刚体,转子受到的磁场恒定,转子受到的摩擦为粘性摩擦,即受到的摩擦力与速度成正比。假设该电机的物理参数为:(J) 转子的转动惯量 _直流电机系统建模matlab

震惊!国内常见的14款低代码平台-程序员宅基地

文章浏览阅读2.1k次。Astro轻应用(Astro Zero,简称AstroZero)是零代码和低代码应用开发平台,源于华为应用开发和数字化转型的实践,提供了云上无码化、低码化、支持多码化的应用开发模式,屏蔽了技术的复杂性,提升了企业开发的效率。开放和透明,低代码平台最大的风险是技术锁定和黑盒,作为开发者我们自己也不喜欢封闭的低代码平台,因此爱速搭重视开放性,前端方面渲染器开源了,后端方面也选择了开发人员最熟悉的传统数据库技术,没有中间层,对开发者是透明的,并且爱速搭后端不依赖任何云厂商,可以部署到任意环境。_低代码平台