Using the VSCode remote plugin or AI Agents

Using the VSCode remote plugin or similar features of other applications to connect to the login nodes and run remote processes is not supported. This also applies to running AI agents/harnesses, either through VSCode or executed directly on the login node. These applications launch a huge number of processes that consume significant amounts of CPU capacity, memory and even worse, stress our network filesystems with an inacceptable number of IOPS (input/output operations per second). While this may not be an issue when it is done by a single user, it has become a significant problem and can cause the login nodes to be unresponsive, extremely slow or even fully lock up and require frequent reboots when many users do it simultaneously. This disrupts access and makes our HPC services worse for all users.

There are various alternative ways to use these applications on the cluster. For VSCode or its forks, you can mount your HPC directories on your local machine via sshfs and use it locally. You can use Code IDE or a large number of agents via JupyterHPC.

If none of these alternatives fit the exact usecase you have, you can run the VSCode remote plugin or AI Agents on the cluster by allocating a compute node and direct your requests there. This involves two steps:

  1. Allocate a compute node.
  2. Use an SSH proxy jump through the login nodes to start your processes on the allocated node.

If you have problems with these steps, please contact our support.

Allocating a compute node

You need to allocate a compute node for the duration you want to work interactively. Use the salloc command with an interactive or shared compute partition you have access to:

salloc -p <compute_partition>:shared -t 04:00:00 -N 1 -n 1 -c 4

Increase the number of CPU cores depending on your needs, but make sure to not allocate more than you can actually utilize to their full capacity. Keep in mind that it can take a while until resources become available for your allocation to start.

For SCC users, scc-cpu is always shared, but NHR users should select a shared partition specifically. You always have access to the jupyter partition if you cannot get resources in a reasonable amount of time.

Setting up SSH

In order to launch your VSCode remote plugin or your AI Agent on the compute node you need to add a few hosts with a wildcard to your ssh config. We are basing this on the examples from the configuring SSH page. The Host Emmy block suggested there is a prerequisite that should be placed before the following in your .ssh/config file.

Host c0*
    User u12345
    IdentityFile ~/.ssh/id_ed25519
    ProxyJump Emmy

Host gfn*
    User u12345
    IdentityFile ~/.ssh/id_ed25519
    ProxyJump Emmy

Once you have allocated a compute node, you can use this configuration to access the node either directly via ssh gfn1234 or by naming gfn1234 as the target host in the VSCode remote plugin or your AI agent interface.