c/c++语言开发共享为什么mpirun不尊重我选择的BTL?

我在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 job完成之前我在无线网络上。 如果我关闭无线网卡或切换到有线以太网连接,它会在预期的大约一秒钟内完成。

为什么mpirun没有观察我选择的BTL?

    为什么mpirun没有观察我选择的BTL?

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

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

    请注意,完全禁用TCP可能会产生意外影响。

    为了完整起见 ,我想详细说明Hristo的答案。

    如果我的模拟软件看似随机崩溃了。 经过一些侦探工作,我发现,丢失网络连接可能导致MPI中止/失败/崩溃。

    随机崩溃的原因是我的笔记本电脑连接的易碎无线。 因此,偶尔掉线的wifi连接导致我的纯粹本地工作结束。

    因此,在我的系统上,我排除了wifi网络(在我的Ubuntu机器上从BTL和OOB命名为wlp3s0 。现在,并行运行仍然存在,禁用了wifi。

     mpirun --mca oob_tcp_if_exclude wlp3s0 --mca btl_tcp_if_exclude wlp3s0 -np 2 someApplication 

      以上就是c/c++开发分享为什么mpirun不尊重我选择的BTL?相关内容,想了解更多C/C++开发(异常处理)及C/C++游戏开发关注计算机技术网(www.ctvol.com)!)。

      本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。

      ctvol管理联系方式QQ:251552304

      本文章地址:https://www.ctvol.com/c-cdevelopment/518864.html

      (0)
      上一篇 2020年12月5日
      下一篇 2020年12月5日

      精彩推荐