1 .Net FrameWork 3.5 安装
Windows8及以上系统,默认不安装.Net FrameWork 3.5 and 2.0,而MPICH2需要.Net FrameWork 2.0,由于服务器没有联网,因此无法在线安装,可以通过系统自带的dism提取系统镜像中的内容;
1.系统镜像如下所示,
2.以管理员身份运行cmd,在shell中输入以下内容,注意修改source即可,本机为E盘;
dism.exe /online /enable-feature /featurename:NetFX3 /Source:E:\sources\sxs
上述命令执行后可能会失败,如图所示,
使用/enable-feature /all即可,
dism.exe /online /enable-feature /all /featurename:NetFX3 /Source:E:\sources\sxs
.Net FrameWork 3.5 and 2.0安装成功;
Win + Q中搜索"启用或关闭Windows功能",然后在"功能"中可以看见.Net FrameWork 3.5功能已经安装ok,其中包括.Net 2.0和3.0;
2 安装MPICH
在每台机器上安装好mpi的安装包,安装的路径任意选择,安装过程中在使用者那选择Everyone,将MPICH2的bin目录添加进系统环境变量Path中;
检查计算机的服务里是否有MPICH2 Process Manager,Argonne National Lab这项服务,具体步骤:右击任务栏->启动任务管理器->点到服务那一列->点击右下角服务按钮,就会出现服务列表,从上面找看看有没有这个服务,如果没有则运行下面的命令;
Win + Q搜索"cmd",然后以管理员身份运行cmd,进入MPICH2的bin目录,在shell中输入,
smpd -install -phrase behappy(为安装时输入的phrase)
3 添加用户账户
为了使计算机集群能使用MPI,应该给每个安装了MPI的计算机添加一个相同的账户,账户密码也必须相同,账户要求是管理员身份。这里的账户为mpi,密码可以随便设置;
4 注册账户
运行wmpiregister.exe ,将mpi账户和密码添加进去,注册,然后点击确定;
5 配置
测试前需要在每台计算机上常见一个路径相同的文件下,比如在F盘根目录下创建一个mpi的文件夹,将编译成功需要执行的.exe文件放入该目录;
运行wmpiconfig.exe,注意将各计算机的防火墙关掉,个计算机在同一个项目组内,这里我使用的计算机都是内网机器,都在WORKGROUP工作组内;
6 测试
1.单机单核版
在本机直接运行cpi.exe,输入一个比较大的数值,80000000,如下
2.单机多核版
运行wmpiexec.exe,处理器选择2,然后执行,如下,
执行结果如下,
3.集群版
在cmd中输入如下命令,
mpiexec -hosts 3 ip1 ip2 ip3 F:/mpi/cpi.exe
执行结果如下,2个计算机节点,可以看到与使用双核的效果差不多;
使用3个计算机节点,使用的时间是单机单核的1/3,可以说集群中计算机节点越多,处理越快,效率几乎是线性的;
7 参考链接
3.Windows 8系统默认开启的.Net Framework版本是4.0,而部分用户可能需要使用到3.5或以下版本,简单添加方法