如何在 Ubuntu 上的 Visual Studio Code 中调试 mpirun Python 进程?

凯文约翰斯鲁德

使用VS Code Docker 扩展Visual Studio Code 中创建/home/bob/foobar.py

import ptvsd
import time
ptvsd.enable_attach(address = ('0.0.0.0', 5678))
ptvsd.wait_for_attach()
time.sleep(2)
print("all righty then")

在最后一行设置断点。

调试|添加配置

launch.json中添加到“配置”

{
   "name": "Python Attach (Remote Debug ptsvd default)",
   "type": "python",
   "request": "attach",
   "pathMappings": [
       {
          "localRoot": "/home/bob", // You may also manually specify the directory containing your source code.
          "remoteRoot": "/home/bob" // Linux example; adjust as necessary for your OS and situation.
       }
    ],
            "port": 5678, // Set to the remote port.
            "host": "0.0.0.0" // Set to your remote host's public IP address.
        },
$ python -m pip install --user --upgrade ptvsd
$ python foobar.py 

使用配置“Python 附加(远程调试 ptsvd 默认)”启动调试器。它在断点处停止。

但是如果我运行mpirun

$ mpirun --allow-run-as-root -np 2 -H localhost:2 -bind-to none -map-by slot -x PATH -mca pml ob1 -mca btl ^openib python ./foobar.py

我收到错误 socket.error: [Errno 98] Address already in use

有没有办法为launch.jsonfoob​​ar.py 中的任意数量的进程分配多个端口

凯文约翰斯鲁德

这目前是不可能的,但 ptvsd 团队已将其添加为可能的增强功能。如果这对您很重要,请投票对该团队的支持似乎将功能提升到待办事项列表中。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章