windows10 x64 vs2015 MPI 1.4.1 环境配置

来源:互联网 发布:大数据测试工程师 编辑:程序博客网 时间:2024/05/16 00:45

因为要上并行计算的课,需要使用MPI进行并行计算程序制作,但是网上能搜到的最新的教程也就是win7 +vs2012,貌似没有找到windows10 + vs2015的,所以,今天给大家详细介绍一下安装及配置方法。


1.当然是下载MPICH,官方网址是www.mpich.org,这个网站是全英文的,我直接告诉大家怎样下载

    (1)点击界面上的download,

    (2)找到网页最下面,可以看到有这个选项

    (3)这里可以看到,有32位和64位兼容版,这里因为我的电脑是64位,VS也是64位的,所以我下载的是64位兼容版

    (4)如果大家还是搞不定,我这里也有共享的网盘,大家可以到这里下载http://pan.baidu.com/s/1qWGFXQs

2.接下来是创建Administrator账户,我们必须以管理员身份进行安装,但是对于原版的windows(非Ghost及其它非官方安装),Administrator账户默认是锁定的,所以我们先需要创建管理员账户

    (1)右键 此电脑,点击管理,找到并展开本地用户和组,点击用户,可以看到许多账户,

    (2)双击Administrator,可以看到账户被禁用,我们把这个勾去掉,点击确定

    (3)然后我们点击开始按钮,点击最上面的用户,可以看到Administrator账户

    (4)点击Administrator,并登录这个账户,第一次登陆比较慢

    (5)如果你发现已经是Administrator账户了,那可以跳过上面几步

3.切换到Administrator账户后,我们就可以安装这个软件了,大家根据自己的平台选择合适的软件,进行安装

    (1)直接全部都进行下一步就行了,中间会要求你输入一个密码,默认是behappy,这个密码被用来访问所有的smpd服务程序,而且这个软件很小,装在默认目录也没什么关系,而且可能减少不少麻烦

4.创建并配置你的MPI项目

    (1)打开VisualStudio2015,新建VC++的win32 控制台应用程序

    (2)右键项目,点击属性,首先找到VC++目录,点击右边的包含目录,可以看到右边有下拉箭头,点击并选择编辑,

    (3)找到你的MPI的安装路径,选择安装路径下的include目录

    (4)再找到VC++目录下的库目录,使用相同的方法,选择安装路径下的lib文件夹

    (5)展开C/C++目录,点击预处理器,选择预处理器定义,使用相同的方法添加  MPICH_SKIP_MPICXX 这一项

    (6)选择预处理器下面的代码生成,点击运行库,选择 多线程调试 (/MTd)

   (7)展开连接器,选择输入,点击附加依赖库,使用同样的方法田间mpi.lib

    (8)这时候如果是32位环境下已经可以编译运行了,但是对于64位环境,还需要继续配置

    (9)在项目属性对话框下,选择配置管理器

    (10)如果没有x64,在活动解决方案平台中选择新建,然后在弹出的对话框中填入信息

    (11)在下面的平台中选择x64

    (12)现在应该在VS中就可以正常运行了

4.配置MPICH

    (1)找到MPICH2目录下的wmpiregister,点击打开

    (2)在account中输入你的电脑的登陆用户名,这里是很纠结的一个地方,因为很多人是以微软账户登录的,解决方法就是用找到刚才启用Administrator账户的地方,找到你的本地账户用户名,然后再把你的Microsoft账户的密码填入password中,点击Register,再点击OK,当然,如果你知道你的本地用户名密码就最好了,实在不行就自行百度吧

    (3)再打开wmpiconfig,以此点击Get Hosts,Scan Hosts 和Scan for versions,点击确定

    (4)最后,你就可以用wmpiexec运行你的VS生成的可执行文件了,可以选择你的核心数量来模拟,这里我建议如果是单机模拟最好把网络断开,否则运行会很慢

提供一个MPI的hello world测试源码


<span style="font-size:24px;">#include "stdafx.h"#include "mpi.h"#include <stdio.h>#include <math.h>#include <Windows.h>int main(int argc, char* argv[]){int myid, numproces;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, &numproces);MPI_Get_processor_name(processor_name, &namelen);fprintf(stderr, "hello world! process %d of %d on %s\n", myid, numproces, processor_name);MPI_Finalize();//system("pause");return 0;}</span>


0 0
原创粉丝点击