Как запустить код в сеансе отладки из кода VS на удаленном компьютере, используя интерактивный сеанс? - PullRequest
4 голосов
/ 10 февраля 2020

Я использую кластер (аналогично slurm, но использую condor ), и я хотел запустить мой код с использованием кода VS (особенно его отладчика), и это remote syn c extension .

Я попытался запустить его, используя мой отладчик в VS-коде, но он не работал должным образом.

Сначала я вошел в кластер, используя VS-код и удаленную синхронизацию c, как обычно, и это прекрасно работает. Затем я go вперед и получаю интерактивное задание с командой:

condor_submit -i request_cpus=4 request_gpus=1

, после чего это успешно дает использовать узел / gpu.

Как только у меня появляется это, я пытаюсь запустить отладчик, но каким-то образом он выводит меня из удаленного сеанса (и похоже, что он идет в головной узел из операторов печати). Это НЕ что я хочу. Я хочу запустить свою работу в интерактивном сеансе в узле / gpu, который я выделил. Почему код VS запускает его не в том месте? Как я могу запустить его в нужном месте?


Некоторые выходные данные встроенного терминала:

source /home/miranda9/miniconda3/envs/automl-meta-learning/bin/activate
/home/miranda9/miniconda3/envs/automl-meta-learning/bin/python /home/miranda9/.vscode-server/extensions/ms-python.python-2020.2.60897-dev/pythonFiles/lib/python/new_ptvsd/wheels/ptvsd/launcher /home/miranda9/automl-meta-learning/automl/automl/meta_optimizers/differentiable_SGD.py 
conda activate base
(automl-meta-learning) miranda9~/automl-meta-learning $ source /home/miranda9/miniconda3/envs/automl-meta-learning/bin/activate
(automl-meta-learning) miranda9~/automl-meta-learning $ /home/miranda9/miniconda3/envs/automl-meta-learning/bin/python /home/miranda9/.vscode-server/extensions/ms-python.python-2020.2.60897-dev/pythonFiles/lib/python/new_ptvsd/wheels/ptvsd/launcher /home/miranda9/automl-meta-learning/automl/automl/meta_optimizers/differentiable_SGD.py 
--> main in differentiable SGD
hello world torch_utils!
vision-sched.cs.illinois.edu
Files already downloaded and verified
Files already downloaded and verified
Files already downloaded and verified
-> initialization of DiMO done!

---> i = 0, iteration/it 1 about to start
lp_norms(mdl) = 18.43514633178711
lp_norms(meta_optimized mdl) = 18.43514633178711
[e=0,it=1], train_loss: 2.304989814758301, train error: -1, test loss: -1, test error: -1

---> i = 1, iteration/it 2 about to start
lp_norms(mdl) = 18.470401763916016
lp_norms(meta_optimized mdl) = 18.470401763916016
[e=0,it=2], train_loss: 2.3068909645080566, train error: -1, test loss: -1, test error: -1

---> i = 2, iteration/it 3 about to start
lp_norms(mdl) = 18.548133850097656
lp_norms(meta_optimized mdl) = 18.548133850097656
[e=0,it=3], train_loss: 2.3019633293151855, train error: -1, test loss: -1, test error: -1

---> i = 0, iteration/it 1 about to start
lp_norms(mdl) = 18.65604019165039
lp_norms(meta_optimized mdl) = 18.65604019165039
[e=1,it=1], train_loss: 2.308889150619507, train error: -1, test loss: -1, test error: -1

---> i = 1, iteration/it 2 about to start
lp_norms(mdl) = 18.441967010498047
lp_norms(meta_optimized mdl) = 18.441967010498047
[e=1,it=2], train_loss: 2.300947666168213, train error: -1, test loss: -1, test error: -1

---> i = 2, iteration/it 3 about to start
lp_norms(mdl) = 18.545459747314453
lp_norms(meta_optimized mdl) = 18.545459747314453
[e=1,it=3], train_loss: 2.30662202835083, train error: -1, test loss: -1, test error: -1
-> DiMO done training!
--> Done with Main
(automl-meta-learning) miranda9~/automl-meta-learning $ conda activate base
(automl-meta-learning) miranda9~/automl-meta-learning $ hostname vision-sched.cs.illinois.edu

Даже не работает без режима отладки

Проблема более серьезная, чем я думал. Я не могу запустить отладчик в интерактивном сеансе, но я не могу даже «Запустить без отладки» без его переключения на консоль отладки Python самостоятельно. Так что это означает, что мне придется запускать вещи вручную с python main.py, но это не позволит мне использовать панель переменных ... что является большой потерей!

Что я делаю, так это переключаю свой терминал на conoder_ssh_to_job и затем нажимаю кнопку Run Without Debugging (или ^F5 или Control + fn + f5), и хотя я убедился, что был на интерактивной сессии в Внизу в моем интегрированном окне он сам по себе переходит к окну / панели отладчика Python, которое не связано с интерактивным сеансом, который я запросил у моего кластера ...


related:

...