🌎
Slurm上でのvscodeのdebug設定
目的:slurm上で、vscodeのgui debugを利用したい
slurmはジョブスケジューラーです。
設定方法
前提:
- login nodeとcompute nodeが一致してる (必須条件) 満たせない場合はこれを使う
- srunが使える
以下の場合の例
- python
- uv
- slurmのpartitonはshort
- gpu(cuda)を使用
- vscodeのremote development mode(cursorも可)
以下の2つのファイルの設定が必要
- .vscode/launch.json
- .vscode/tasks.json
launch.json
{
"version": "0.2.0",
"configurations": [
{
"name": "SLURM GPU Debug main_simulation.py",
"type": "debugpy",
"request": "launch",
"program": "${workspaceFolder}/main_simulation.py",
"console": "integratedTerminal",
"cwd": "${workspaceFolder}",
"python": "${workspaceFolder}/.venv/bin/python",
"env": {
"PYTHONPATH": "${workspaceFolder}",
"VIRTUAL_ENV": "${workspaceFolder}/.venv",
"PATH": "${workspaceFolder}/.venv/bin:${env:PATH}"
},
"args": [
"--seed", "0",
"--output_dir", "tmp",
],
"justMyCode": false,
"preLaunchTask": "srun-gpu-debug"
}
]
}
task.json
{
"version": "2.0.0",
"tasks": [
{
"label": "srun-gpu-debug",
"type": "shell",
"command": "srun --partition=short --gres=gpu:1 --job-name=DEBUG --pty bash",
"group": "build",
"presentation": {
"echo": true,
"reveal": "always",
"focus": false,
"panel": "shared",
"showReuseMessage": true,
"clear": false
},
"problemMatcher": [],
"options": {
"cwd": "${workspaceFolder}"
}
}
]
}
ポイント:
- preLaunchTaskでsrunを実行する
- argsでコードの引数を指定する
- packageのpathが${workspaceFolder}/.venv/bin/以下にある

Discussion