mpiexec,不复制 DLL

mpiexec, without copying DLLs

在我的 Windows 测试中,我对本地主机的 运行 MPI 感兴趣,没有复制 DLL 的资源开销。我宁愿使用调用环境中定义的 PATH。即使将“-envlist PATH”传递给 mpiexec,我也无法在我一直调用的 mpiexec 上执行此操作。

潜在的问题是当我调用我编译的可执行文件时,我得到错误代码“-1073741515”,这告诉我我缺少依赖项。当我将 DLL 复制到该目录时(我不想这样做),我得到一个非错误代码“0.”

为了测试,我使用了一个 "printenv.exe" 命令。我 运行 它使用 mpiexec,以表明在调用环境中实际上并未设置 PATH。

我试图阻止复制 DLL,而是使用 PATH。能不能不把PATH传给调用环境?

D:\test>d:\thirdparty\win32-msvc2010bit\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。

我了解到这是 MPICH2 v1.4.1 上的一个已知错误。

我们决定使用 Intel 的 MPI 实现,它不会出现此错误。