在我的 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。