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

Documentation

Windows: Run VS Code on a compute node

  1. Generate an ssh keypair with this command in windows powershell:
    ssh-keygen -t rsa -b 4096. The key should be passphrase protected.

    Generate ssh keypair

  2. 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

    copy key

  3. 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

  4. 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

    admin powershell session

    enable ssh-agent

  5. In an non-administrative powershell session:
    Run ssh-agent.exe
    Add your keys using ssh-add

    add ssh key

  6. 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.

    config .ssh file

  7. 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
    
    modify config file

  8. Save and close the file.

  9. 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

    modify ssh setting

    config ssh setting

  10. Start an sinteractive session on Biowulf (using an alternate method such as putty or nomachine) and take note of the compute node number (cnXXXX).

    sinteractive session

  11. In VS Code, click the bottom left icon, select/type 'Remote-SSH: Connect to host'

    remote ssh connect to host

  12. 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.

    interactive node number

    linux

    continue

    continue

  13. 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

  1. Install the "Remote Development" VScode extension on your Mac.

  2. Generate an ssh keypair and copy (passphrase protected) public key to Biowulf. See Mac section on https://hpc.nih.gov/docs/sshkeys.html

  3. 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

  4. 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

  5. Start an sinteractive session on Biowulf (using an alternate method such as putty or nomachine) and take note of the compute node number (cnXXXX).

  6. Use VSCode "Remote-SSH Connect to Host" to connect to cnXXXX (replace "XXXX" with the actual compute node number obtained in step 5.

  7. 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

  1. Install Jupyter extension in VS Code

  2. Setup remote-ssh connection following above Windows step 1-13 or Mac step 1-7.

  3. 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.