Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
47 changes: 47 additions & 0 deletions docs/hpc/06_tools_and_software/09_vscode_remote_ssh_torch.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
# Connect VSCode to Torch
This page introduces two ways to connect VSCode to Torch.

## Recommended Option: `code-server` through Open OnDemand

Torch provides `code-server`, which runs a VSCode-like editor in the browser, as an Open OnDemand interactive app.

To use it, log in to Torch Open OnDemand and launch the code-server app from the interactive apps menu.

After the session starts, open the code-server session by clicking "Connect to VS Code". The session provides browser-based file browsing and editing on Torch, and includes a working terminal.

This workflow can be easier than local VSCode Remote - SSH because authentication is handled through the Open OnDemand login. After logging in to Open OnDemand, users do not need to complete additional Microsoft device authentication prompts. Open OnDemand also launches the code-server session through the scheduler, so users do not need to manually submit a dummy batch job and then connect to the assigned compute node. For users who only need a browser-based VSCode-like environment on Torch, code-server is the recommended option.

## Alternative Option: Local VSCode with Remote - SSH
### Step 1: Configure the Torch SSH Host

Update your local `~/.ssh/config` to define a Torch SSH host for VSCode:

```ssh-config
Host torch
HostName login.torch.hpc.nyu.edu
User NetID
StrictHostKeyChecking no
UserKnownHostsFile /dev/null
LogLevel ERROR
ServerAliveInterval 60
```

Replace `NetID` with your NYU NetID.

### Step 2: Connect
Install the VSCode Remote - SSH extension.

Configure Remote - SSH settings:
1. Check off `Remote.SSH: Lockfiles In Tmp`

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ [remark-lint] reported by reviewdog 🐶
Incorrect list-item indent: add 1 space list-item-indent remark-lint

2. Uncheck `Remote.SSH: Use Flock`

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🚫 [vale] <Vale.Spelling> reported by reviewdog 🐶
Did you really mean 'Uncheck'?

Suggested change
2. Uncheck `Remote.SSH: Use Flock`
2. Recheck `Remote.SSH: Use Flock`
Suggested change
2. Uncheck `Remote.SSH: Use Flock`
2. Check `Remote.SSH: Use Flock`
Suggested change
2. Uncheck `Remote.SSH: Use Flock`
2. Pinchbeck `Remote.SSH: Use Flock`

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ [remark-lint] reported by reviewdog 🐶
Incorrect list-item indent: add 1 space list-item-indent remark-lint


Because Torch requires Microsoft device authentication during SSH login, VSCode may time out before you finish entering the device code. If this happens, search for Remote.SSH: Connect Timeout and set it to 120.

Before connecting, open https://microsoft.com/devicelogin and keep it ready. In VSCode Remote Explorer, connect to the Torch login node: torch. When VSCode prompts for Microsoft device authentication, enter the code on the device login page. This may take a few attempts. VSCode may also prompt more than once during setup because it can open multiple SSH connections.

After authentication, VSCode may take a while to install or start the VSCode server on Torch. If the connection fails during this step, try connecting again. Once the server is installed successfully, future connections are usually more consistent.

Once connected, open a terminal in the VSCode remote session. The prompt should show that you are on a Torch login node, for example:
```bash
[NetID@torch-login-... ~]$
```
Original file line number Diff line number Diff line change
@@ -0,0 +1,54 @@
# Use Apptainer Jupyter Notebooks in VSCode on Torch

This page builds on the general VSCode access instructions in 09_vscode_remote_ssh_torch. Before following this workflow, complete that setup and connect VSCode to the Torch login node.

## Step 1: Install VSCode Jupyter support

After connecting VSCode to the Torch login node, open the Extensions view in the VSCode remote window and search for Jupyter.

Install or enable the Microsoft Jupyter extension in the remote SSH environment. If the extension is not already installed remotely, VSCode should show an option such as:

`Install in SSH: torch`

## Step 2: Start a Dummy Batch Job and Connect to the Compute Node

After the Jupyter extension is installed or enabled, open a terminal in the VSCode remote session on a Torch login node.

Interactive jobs on Torch may experience intermittent issues. Some compute nodes may work as expected, while others may not. As a workaround, submit a lightweight dummy batch job and then ssh to the allocated compute node after the job is running.

For example:

```bash
sbatch -c4 -t2:00:00 --mem=4G --account=<account_name> --wrap "sleep infinity"
```

Replace `<account_name>` with the account for your project. After submitting the job, Slurm will print a job ID, for example:

```bash
Submitted batch job <job_id>
```

Once the job is running, identify the assigned compute node and connect to it from the VSCode terminal using SSH.
Check the job status and assigned node:
```bash
squeue -u $USER
```

```bash
ssh csXXX
```

After connecting, the terminal prompt should show the compute node:
```bash
[NetID@csXXX ~]$
```

## Step 3: Open the notebook

Open the target .ipynb notebook in VSCode.

## Step 4: Select the Apptainer kernel

Use the notebook kernel picker to select the Apptainer kernel for the notebook.

If the Apptainer kernel does not appear, confirm that the kernel is installed and visible on Torch before retrying in VSCode.
Loading