在我的Windows测试中,我对使用localhost运行MPI感兴趣,没有复制DLL的资源开销。我宁愿使用在调用环境中定义的PATH。我已经无法在我已经打过电话的mpiexec上做到这一点,即使通过" -envlist PATH"到了mpiexec。
潜在的问题是,当我调用已编译的可执行文件时,我会收到错误代码" -1073741515,"这告诉我,我错过了依赖。当我将DLL复制到该目录时(我不想这样做),我得到一个非错误代码," 0。"
为了测试,我使用了" printenv.exe"我使用的命令。我使用mpiexec运行它,以显示PATH实际上并未在调用环境中设置。
我试图阻止复制DLL,而是使用PATH。我可以不将PATH传递给被叫环境吗?
D:\test>d:\thirdparty\win32-msvc2010\64bit\mpich2\v1.4.1p1\bin\mpiexec.exe -exitcodes -np 1 -envlist Path "C:\Program Files\UnxUtils\usr\local\wbin\printenv.exe"
...
Path=C:\Program Files (x86)\Common Files\Intel\Shared Libraries\redist\intel64\mpirt;... libraries that aren't from the called PATH.
...
数据:我正在使用MPICH2,v1.4.1p2。
答案 0 :(得分:0)
我了解到这是MPICH2上已知的错误,v1.4.1。
我们决定使用英特尔的MPI实现,但没有出现此错误。