Connecting VS Code to ARC Cluster
ARC stands for Advanced Research Computing at Virginia Tech. They provide access to High Performance Computing devices with GPUs useful for post-training / fine-tuning LLMs with custom datasets along with associated memory to store and retrieve the files required for that compute. In this blog post, let us look at the steps to use VS Code to connect to a remote ARC Cluster.
In this blog post, we’ll see the steps required to connect VS Code to an ARC Cluster. This approach to achieve is much more tricky than a regular SSH into the ARC Cluster from a VS Code terminal. The major advantage of connecting locally installed VS Code with remote ARC Clustes is that it serves as best of both world combining both local development and remote high performance compute that can be accessed on-demand.
Kindly note that, ARC has provided sufficient resources in the form of documentation, video tutorials, work shops, presentations, github repos and office hours to support VT’s academic community. I totally respect that. But I do feel that these resources are a little scatterred and it might overwhelm someone who is starting out with HPC for the first time and make them delay the usage of ARC (atleast I did that). Since, how great ARC is, it would be great if each and every student at VT has access to ARC and take leverage of the wonderful computing resources they have in offer as soon as possible. Secondly, this blog also servers as a guide to help someone who needs to setup ARC from scratch on new devices.
That said and done, I do have a couple of disclaimers here.
- The screenshots and commands posted here are tried and tested in a Windows 11 Laptop. I can’t provide the guarentee that the same will be applicable for Mac and Linux users. But it’s not dull out there for Mac and Linux users. There are numerable resources linked to this blog, that will help you cruise through any difficulty that you may (hopefully not) encounter.
- The scope of this blog is limited only to connecting to connecting a local VS Code to an ARC Compute Cluster. Futher steps will come up in upcoming blog posts.
Prerequisites
- Getting ARC Access
- A student at VT who is in need of high performance compute resources for work can get access to an ARC cluster.
- The first point of contact is your PI / research advisor.
- Contact them to get access to ARC’s cluster.
- Your PI must create a project and give you access to that project.
- Coldfront: Once you have access to ARC Cluster you will be able to view your projects and allocations
- Installing VT’s Ivanti VPN
- Users must be connected to VT’s VPN in order to connect with ARC
- You can use this link to install VT’s Ivanti VPN for their OS
- Once installed, activate the VPN
- Installing VS Code
- If you have not already done so, you can install VS Code by following this link.
- Installing extensions in VS Code
- Start VS Code
- Hit Ctrl/Cmd + Shift + x to open up the Extensions panel.
- Search and install the following extensions

Steps to connect VS Code
- Click on the Remote Developement icon extension from the panel.
- Under the ssh tab, create the
+icon to add a new ssh.

- In the input box, type in
ssh <your PID>@tinkercliffs1.arc.vt.eduand hit enter.

- In the prompt that appears, select
C:\Users\<username>\.ssh\config(the first option)

- Now you can see that the new host has been added to the list of available hosts under the SSH tab in the Remote Development extension on the left pane.
- Click on the
->besidestinkercliffs1.arc.vt.edu. This will launch a new SSH session in the current window. If you want a new window, use the option adjacent to->

- Next step, it asks for the OS, select Linux.
- Next step, it asks for your password, enter your VT Single Sign On (SSO) password

- Once the password is entered, you’ll get a Duo push onto your mobile device. Approve that.
- Once that is done, you are now connected and your login has been authenticated by the tinkercliffs1 cluster at ARC.
- You can verify that by viewing the bottom left corner of VS Code. It should display
SSH: tinkercliffs1.arc.vt.edu

Important: Make sure to not install any packages / modules at this step. You are currently in the login node. Installing packages or modules (like anaconda etc.) in this step might hinder your authentication in future access requests. You can install packages using the compute node
Requesting resources
-
Once authenticated, the next step is to request resources from ARC. We’ll be using interact command for that.
-
Open a new terminal and use the following command by replacing the
<allocation-name>with your corresponging allocation name from coldfront
interact --partition=dgx_normal_q --time=1:00:00 --gres=gpu:1 --account=<allocation-name> --nodes=1 --ntasks-per-node=1 --cpus-per-task=1
- partition - keyword representing the type of GPU requested
- time - duration for which this resource has been requested
- account - project name from coldfront
- gres=gpu - number of GPUs requested
Here is a table containing the list of ARC’s resources. You can check this out to try out various partitions and clusters offered by ARC.
Once this command is run, you’ll have to wait for sometime for the requested resource to be allocated. Once the resource is allocated, it means you have officially got your GPU.

Important: Make a note of the name of your compute node. We’ll need it later to access it via SSH
For example, my compute node’s name is - tc-dgx006
Connecting multiple terminals in VS Code to the compute node
Once you have access to the compute node, you can connect multiple terminals to it by using SSH.
Open a new terminal in VS Code (the newly opened terminal would have already been authenticated)
- Type
ssh <your-PID>@your-compute-node-nameand hit enter. - On running this command successfully, you have entered SSH’ed into your compute node
