为什么mpirun不尊重我对BTL的选择? [英] Why does mpirun not respect my choice of BTL?

查看:400
本文介绍了为什么mpirun不尊重我对BTL的选择?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在Windows 7计算机上的Cygwin上使用Open MPI(1.8.3).我想只在这台机器上运行MPI代码,而不用在任何外部网络上交谈.我了解我应该能够使用MCA选项将mpirun限制为自我和共享内存通信:

I am using Open MPI (1.8.3) on Cygwin on a Windows 7 machine. I would like to run MPI codes on this machine exclusively, without talking on any external network. I understand I should be able to restrict mpirun to self and shared memory communication using MCA options like so:

mpirun -n 8 --mca btl sm,self ./hello.exe

但是,当我尝试此操作时,Windows询问我是否要使防火墙例外,这表明我的工作正在尝试通过TCP进行外部通信.此外,当且仅当我在hello world工作完成之前处于无线网络中时,mpirun才会挂起大约一分钟,然后再完成.如果我关闭无线网卡或切换到有线以太网连接,它会在大约一秒钟内完成.

However, when I try this, Windows asks me if I'd like to make a firewall exception, indicating my job is trying to talk externally over TCP. Additionally, mpirun will hang for roughly one minute before completing if and only if I'm on a wireless network before the hello world job completes. If I turn off my wireless card or switch to a wired ethernet connection, it completes in around one second as expected.

为什么mpirun没有遵守我对BTL的选择?

Why is mpirun not observing my choice of BTL?

推荐答案

为什么mpirun没有遵守我对BTL的选择?

Why is mpirun not observing my choice of BTL?

这绝对是在观察您对BTL的选择.但是还有另一个框架,即OOB,默认情况下也使用TCP.您应该为两个框架都禁用tcp组件,以防止Open MPI完全使用TCP:

It is definitely observing your choice of BTL. But there is another framework, namely OOB, which is also using TCP by default. You should disable the tcp component for both frameworks in order to prevent Open MPI from using TCP altogether:

mpirun -n 8 --mca btl ^tcp --mca oob ^tcp ...

请注意,完全禁用TCP可能会产生意想不到的效果.

Note that completely disabling TCP might have unexpected effects.

这篇关于为什么mpirun不尊重我对BTL的选择?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆