VS Code on Biowulf
VS Code ( vscode ) should ONLY be run from computational nodes. Do not run VS Code on Biowulf or Helix. Please follow instructions on this page to run on compute node. Please contact staff@hpc.nih.gov if you run into issues while following the below steps.
Visual Studio Code is a code editor redefined and optimized for building and debugging modern web and cloud applications. It might be a good idea to install "Remote Development" extension pack which allows you to open any folder in a container, on a remote machine, or in the Windows Subsystem for Linux (WSL) and take advantage of VS Code's full feature set. It includes 'Remote SSH', 'Remote Containers' and 'Remote WSL' extensions.
Note
- Error: Connecting with SSH timed out; If this error appear frequently, please go to the setting of Remote-SSH extension of VS Code and modify the 'Remote.SSH: Connect Timeout' to 30 seconds.
Documentation
This application can be utilized interactively via the HPC OnDemand web interface.
Windows: Run VS Code on a compute node
- Generate an ssh keypair with this command in windows powershell:
ssh-keygen -t rsa -b 4096
. The key should be passphrase protected.
- Copy the public key from its present location to the authorized_keys file on Biowulf (replace xxx with your own user name):
scp /Users/xxx/.ssh/id_rsa.pub xxx@biowulf.nih.gov:~/tmp
- Log in to Biowulf:
biowulf $ cat tmp >> ~/.ssh/authorized_keys
biowulf $ rm tmp
biowulf $ chmod 0700 /home/$USER/.ssh
biowulf $ chmod 0600 ~/.ssh/authorized_keys
- In an administrative powershell session(your institute IT department may need to be involved):
Is ssh-agent enabled?: Get-Service ssh-agent | Select StartType
If the StartType is Disabled, enable with: Get-Service -Name ssh-agent | Set-Service -StartupType Manual
- In an non-administrative powershell session:
Run ssh-agent.exe
Add your keys using ssh-add
- In the 'search' box at the bottom left corner of windows desktop, type
notepad C:\Users\xxx\.ssh\config
and press enter. Replace xxx with your own user name.
- Add the following to this file (replace xxx with your own user name):
Host cn*
User xxx
ProxyCommand C:\Windows\System32\OpenSSH\ssh.exe -o ForwardAgent=yes xxx@biowulf.nih.gov nc -w 120ms %h %p
- Save and close the file.
- Install the "Remote Development" VScode extension. In VS Code Remote-SSH extension add the following in the settings section to your "Remote.SSH: Config File" (replace XXX with your own user name):
C:\Users\XXX\.ssh\config
- Start an sinteractive session on Biowulf (using an alternate method such as putty or nomachine) and take note of the compute node number (cnXXXX).
- In VS Code, click the bottom left icon, select/type 'Remote-SSH: Connect to host'
- In the box, replace "XXXX" with the actual compute node number obtained in step 10, then click on the node name (not press enter). Select 'linux', 'continue', then the node number should appear at the bottom left.
- You should now be able to open a terminal in VS Code to cnXXXX and edit/run scripts directly on cnXXXX.
Mac OSX: Run VS Code on a compute node
The instructions for Mac OSX is very similar to the Windows instructions
- Install the "Remote Development" VScode extension on your Mac.
- Generate an ssh keypair and copy (passphrase protected) public key to Biowulf. See Mac section on https://hpc.nih.gov/docs/sshkeys.html
- In your Mac terminal:
a) run "ssh-agent" to start the agent.
b) Add your keys using "ssh-add".
c) Add the following to .ssh\config in local computer (replace $username with your own username):
Host cn*
User $username
ProxyCommand /usr/bin/ssh -o ForwardAgent=yes $username@biowulf.nih.gov nc -w 120ms %h %p
- In VSCode Remote SSH add the following in the settings section to your "Remote.SSH: Config File"(replace $username with your user name):
/Users/$username/.ssh/config
- Start an sinteractive session on Biowulf (using an alternate method such as putty or nomachine) and take note of the compute node number (cnXXXX).
- Use VSCode "Remote-SSH Connect to Host" to connect to cnXXXX (replace "XXXX" with the actual compute node number obtained in step 5.
- You should now be able to open a terminal in VS Code to cnXXXX and edit/run scripts directly on cnXXXX.
Run Jupyter notebook on a compute node in VS Code
- Install Jupyter extension in VS Code
- Setup remote-ssh connection following above Windows step 1-13 or Mac step 1-7.
- Once connected to compute node (see node number at bottom left corner) following step 1, open jupyter nb file from 'File' menu and type the full path of the file such as /data/YourUserName/xxx.ipynb. Python environment can be selected by clicking 'select kernel' at top right corner and 'python environments'.
You are now running Jupyter Notebook on a compute node.
Please see the Biowulf Jupyter page for more information about running Jupyter outside VS Code on Biowulf.