Как отлаживать mpirun процессы Python в коде Visual Studio на Ubuntu? - PullRequest
0 голосов
/ 17 мая 2019

Создать / home / bob / foobar.py в Код Visual Studio с расширением Docker для кода VS

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

Setточка останова в последней строке.

Отладка | Добавить конфигурацию

В 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 Attach (Remote Debug 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.json и в foobar.py ?

1 Ответ

0 голосов
/ 17 мая 2019

В настоящее время это невозможно, но команда ptvsd добавила его в качестве возможного улучшения. Проголосуйте , если это важно для вас.Голосования за эту команду, кажется, перемещают функции вверх по списку дел.

...