Mark:MPICH2 安装遇到的那些坑
Mark:MPICH2 win10下安装遇到的那些坑【安装教程】【配置MPICH2】编辑于2019/9/17 2:51安装及调试过程参考:https://blog.csdn.net/u013642500/article/details/83549093这里说几个安装时遇到的问题,和百度许久查到的解决方案,目录就统一用上面这位博主的吧。【安装教程】这里我安装的版本是mpich2-1.4...
Mark:MPICH2 win10下安装遇到的那些坑
编辑于2019/9/17 4:16
安装及调试过程参考:https://blog.csdn.net/u013642500/article/details/83549093
这里说几个安装时遇到的问题,和百度许久查到的解决方案,目录就统一用上面这位博主的吧。
【安装教程】
这里我安装的版本是mpich2-1.4-win-x86-64.msi
安装很简单,但是这位博主貌似忽略了一些很重要的问题,都是坑啊…
1、首先说一下,一定要用管理员运行msi安装包,这里就有大问题了,因为我最开始发现右键菜单里没有 “管理员运行” 选项,这里参考一下下面这篇博文,改一下注册表:
链接:https://blog.csdn.net/captainfeng/article/details/80927877
这里为了方便,移植一下,图就不全贴了:
- 键盘输入win+r,运行输入regedit,打开注册表编辑器
- 找到计算机\HKEY_CLASSES_ROOT\Msi.Package\shell,右键点击shell,选择新建->项,命名为 runas ,选中runas项,双击右侧窗口的“默认”,在弹出的窗口中数值数据处输入“以管理员身份运行”,点击确定,如图。
- 然后右键点击runas,选择新建->项,命名为 command,用同样的方法把 默认 字符串的数值数据修改为 msiexec /i“%1”
- 然后就可以关闭注册表编辑器。
- 右键msi文件菜单里出现了以管理员身份运行选项,希望你不会遇到windows installer无法打开此安装程序包错误。如果你也和我一样遇到了这种错误,请参考https://blog.csdn.net/captainfeng/article/details/80928162给出的解决方案。
很不巧,我就遇到了这个错误,于是我按着第二篇博文继续设置…
- 以 管理员 身份运行cmd
- 进入msi文件目录,输入命令msiexec /package 文件名,我的输入:msiexec /package mpich2-1.4-win-x86-64.msi
然后我成功地进入了安装界面!
这里说一下如果你不以管理员权限安装的话,到后面全部安装成功后,测试的时候你会遇到像我一样的问题:
由于目标计算机积极拒绝,无法连接。 (10061)
这个时候只有卸载以管理员打开后重装。
如果你是搜这个进来的,那恭喜你找到解决方案了。
2、安装前我又遇到了问题,缺少.NET Framework 2.0.50727,搜了一下好像这个东西和系统一起自动更新,而我好久没更新系统了…于是我去单独下了一个安装了。(真的不想更新系统)
接下来的安装过程按最前面的教程走就好,这里提两个点,我自己作死的地方…
一个是一定要选“Everyone”,我选了“Just Me”然后失败了,虽然不知道是不是这个原因,但还是规规矩矩地吧…
还有一个就是上面这个图里,默认安装在C盘,就不要改了吧…虽然我也不知道为什么我装到D盘就不行,可能是权限问题?反正不大,就装C盘吧。
【配置MPICH2】
这里也不搬运了,就按照教程来,我还是提一点里面的不足之处。
关于这里的用户名和密码,强烈建议去控制面板开一个新管理员账户。我是用本机的账户注册的,后面测试那个自带例子的时候,一直给我报下面这个错,我都快疯了…查了半天也没查到,后来灵机一动开了个新账户就好了~
Credentials for … rejected connecting to …
Aborting: Unable to connect to
如果你是搜这个进来的,那也恭喜你了!
除此之外,如果你在“smpd -install -phrase behappy”时报错如下:
Unable to remove the previous installation, install failed.
这说明…你没用管理员运行cmd/powershell
后面给VS配环境就没什么好说的了,本文到此结束,如果帮到了你是我的荣幸。还有什么问题可以留言,我要是会的话会及时回复的~
结尾纪念一下本小白的第一个mpi程序
#include <mpi.h>
#include <stdlib.h>
#include <stdio.h>
#include <conio.h>
#pragma comment (lib, "mpi.lib")
int main(int argc, char* argv[])
{
int myid, numprocs;
int namelen;
char processor_name[MPI_MAX_PROCESSOR_NAME];
MPI_Init(&argc, &argv);
//用MPI_Comm_rank 获得进程的rank,该rank值为0到p-1间的整数,相当于进程的ID
MPI_Comm_rank(MPI_COMM_WORLD, &myid);
//用MPI_Comm_size 获得进程个数 int MPI_Comm_size(MPI_Comm comm, int *size);
MPI_Comm_size(MPI_COMM_WORLD, &numprocs);
MPI_Get_processor_name(processor_name, &namelen);
printf("Hello World! by MoreWindows\nProcess %d of %d on %s\n", myid, numprocs, processor_name);
MPI_Finalize();
return 0;
}
开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!
更多推荐
所有评论(0)