我在Windows 7机器上的Cygwin上使用Open MPI(1.8.3)我只想在这台机器上运行MPI代码,而不想在任何外部网络上进行通信我知道我应该能够使用MCA选项将mpirun
限制为自我和共享内存通信,例如:
mpirun -n 8 --mca btl sm,self ./hello.exe
但是,当我尝试此操作时,Windows会询问我是否要设置防火墙例外,这表示我的作业正在尝试通过TCP进行外部对话此外,mpirun将在完成之前挂起大约一分钟,前提是且仅当我在hello world作业完成之前处于无线网络上如果我关闭无线网卡或切换到有线以太网连接,它将在大约一秒钟内完成。
为什么
mpirun
不遵守我对BTL的选择? 最佳答案
为什么mpirun
不遵守我对BTL的选择?
它绝对是在观察你对BTL的选择但是还有另一个框架,即OOB,它默认也使用TCP您应该为两个框架禁用tcp
组件,以防止Open MPI同时使用TCP:
mpirun -n 8 --mca btl ^tcp --mca oob ^tcp ...
请注意,完全禁用TCP可能会产生意外的效果。