近期用mpi写程序,遇到了若干问题,首先当然是编译程序时候忘记了添加库文件,所以出现了
(1)找不到包括文件:mpi.h
(2)无法解析的外部符号_MPI_Barrier等类似的问题.
关于问题1当然是在属性中添加include lib文件夹路径,对应方法如下:
转载自:http://blog.sina.com.cn/s/blog_79489160010145wb.html
1. 添加编译所需要的 lib 文件
[解决方案资源管理器]“项目->属性->配置属性->连接器->输入->附加依赖项”里填写“winsock.lib”,多个 lib 以空格隔开。
(等同于“#pragma comment(lib, "winsock.lib") ”语句)
2. 添加库(Libs)文件目录
方法 1:[解决方案资源管理器]“项目->属性->配置属性->连接器->常规->附加库目录”
方法 2:[菜单]“工具->选项->项目和解决方案->C++ 目录”,选择对应平台,然后添加所需“库文件”目录
3. 添加包含(include)文件目录
方法 1:[解决方案资源管理器]“项目->属性->配置属性->C/C++->常规->附加包含目录”
方法 2:[菜单]“工具->选项->项目和解决方案->C++ 目录”,选择对应平台,然后添加所需“包括文件”目录
问题2其实是因为没有添加上mpi.lib,解决办法同上1,在程序预编译头部添加#pragma comment(lib,"mpi.lib")即可
当编译没有问题成功生成.exe文件后,运行wmpiexec.exe,提示
Credentials for host rejected connecting to 3SLIGK1IP7U7PO5
Aborting: Unable to connect to 3SLIGK1IP7U7PO5
这个问题经过多方查找后,是没有用管理员身份运行程序带来的注册的问题,不能连接到主机,权限问题。
所以用下面的方法尝试(但是这个方法并没有解决我的问题,具体可以看下面加大的字体,不过我还是建议安装的时候用命令行管理员账号来安装):
转载自:http://blog.csdn.net/g_spider/article/details/5764386
首先下载一个最新的mpich2:
http://www.mcs.anl.gov/research/projects/mpich2/downloads/tarballs/1.2.1p1/mpich2-1.2.1p1-win-ia32.msi暂时就选这个稳定版本吧。
接着是安装,用命令行安装(推荐),且看下面的邮件对白,嘿嘿:
Hi, Very thanks for your response.
I reinstalled the MPICH2 by the steps that you say to me.
After the installation I try to run a non-MPI program (mpiexec -n 2
hostname) and I have the same error:
I have the output:
Please specify an authentication passphrase for smpd:
I write the authentication passphrase and the system response to me:
Aborting: unable to connect to User-PC
Very thanks.
I will thanks any help.
Yessica Brinkmann
2010/5/25 <jayesh at mcs.anl.gov>:
> Hi,
> I would recommend uninstalling MPICH2 and installing it again from the administrator command prompt by following the steps below.
>
> # Download the latest version of MPICH2 (http://www.mcs.anl.gov/research/projects/mpich2/downloads/index.php?s=downloads).
> # Open an administrator command prompt (Right-click on the command prompt icon and select "Run as administrator")
> # From the admin command prompt use the msiexec utility to uninstall MPICH2 (eg: Type "msiexec /x mpich2-1.2.1p1-win-ia32.msi" to uninstall MPICH2 using the mpich2-1.2.1p1-win-ia32.msi installer)
> # The above command will bring up the Installer GUI to uninstall MPICH2. Follow the steps to uninstall MPICH2.
> # From the admin command prompt use the msiexec utility to install MPICH2 (eg: Type "msiexec /i mpich2-1.2.1p1-win-ia32.msi" to install MPICH2 using the mpich2-1.2.1p1-win-ia32.msi installer)
> # The above command will bring up the Installer GUI to install MPICH2. Follow the installer steps to install MPICH2.
> # After the installation try to run a non-MPI program (mpiexec -n 2 hostname) . If the job launcher, mpiexec, requests for a username/password please provide the same (When specifying the username/password make sure that you specify the domain name if the user is a domain user).
>
> Let us know the results.
>
> Regards,
> Jayesh
看看红色的部分,就知道:
首先打开附件,找到命令提示符图标,点右键,选择以管理员身份运行(注意一定要在管理员权限下才行,这也是我这几天郁闷的心结!!).
接着输入命令msiexec去卸载或安装mpich2包。
比如你刚才下载的 mpich2-1.2.1p1-win-ia32.msi 文件放在e盘根目录下,则
msiexec /i e:/mpich2-1.2.1p1-win-ia32.msi 这样就可以完成管理员权限下的mpich2安装,执行安装过程中的,只需默认(路径也不要改,这样省心不少)下一步下一步,,直到完成。。
不知道是哪个大牛回复他的,膜拜~
他还举了个例子,写了个脚本,运行的截图也有,想具体看的请看他原文,我就不列举啦~~
额,但是我这么做了还是不行。最后查找的结果是我使用wmpiregister.exe时注册的账号有误,一定要注册管理员帐号才行。即注册的账号一定要和操作系统的管理员账号密码相同,即Administrator的账号和密码。
但是我的管理员账号没有密码不能成功注册,最后无奈,只能给Administrator添加了密码。
就此,成功注册使用!坑爹的win7管理员账号。。。