You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 3 Next »

e

Prerequisites

Visual Studio Code is usually started on a localhost, which results in starting local application to interact with the gui.

On Ares and Athena we cannot easily expose the GUI to external world, as calculations are done internally on a computing node, not visible from Internet.

How to use on Ares?

Via SSH tunnel

The trick is to start VSCode webserver via a job submitted to a computing node and creating a SSH tunnel to access it on a local PC.

Submit rstudio job to a computing node

Create the following file:

rstudio-notebook.slurm
#!/bin/bash
#SBATCH --partition plgrid
#SBATCH --nodes 1
#SBATCH --ntasks-per-node 6
#SBATCH --time 0:30:00
#SBATCH --job-name code-server
#SBATCH --output code-server-log-%J.txt

module load vscode/20240129-insiders

mkdir -p $SCRATCH/vscodedata

## start an rserver instance
start-vscode-web --server-data-dir $SCRATCH/vscodedata

Save it as  vscode-run.slurm.

Send job to queue using sbatch command on login node of Ares

sbatch vscode-run.slurm

Wait until your job enters running state.

To check status of submitted job using squeue command

squeue -j <JobID>

or all jobs of user

squeue -u $USER

which lists all  current user jobs submitted to queue ($USER - is enviromental).

Common states of jobs:

  • PD - PENDING - Job is awaiting resource allocation.
  • R - RUNNING - Job currently has an allocation and is running.
  • CF - CONFIGURING  - Job has been allocated resources, but are waiting for them to become ready for use (e.g. booting). On Ares CF state could last for up to 8 minutes in case when nodes that have been in power save mode.
  • CG - COMPLETING  - Job is in the process of completing. Some processes on some nodes may still be active.

Make a tunnel

In your directory cat VSCode log file:

cat code-server-log-XXXXXXX.txt

where `XXXXXXX` is your sbatch job id which is displayed after you run it f.e. `cat code-server-log-7123485.txt`

It will show you something like this:

    Copy/Paste this in your local terminal to ssh tunnel with remote
    -----------------------------------------------------------------
    ssh -o ServerAliveInterval=300 -N -L 9633:172.22.17.186:9633 plguser@ares.cyfronet.pl
    -----------------------------------------------------------------
    Then use Web UI link located at the end of the log in your web browser:

*
* Visual Studio Code Server
*
* By using the software, you agree to
* the Visual Studio Code Server License Terms (https://aka.ms/vscode-server-license) and
* the Microsoft Privacy Statement (https://privacy.microsoft.com/en-US/privacystatement).
*
Web UI available at http://localhost:9633?tkn=ee8e3c6e34ad22ea267a9532635cabe8d1b5fbc59b8705e91737a6129a866b5b

Exec in another shell at your local computer given command to make a tunnel:

ssh -o ServerAliveInterval=300 -N -L 9633:172.22.17.186:9633 plguser@ares.cyfronet.pl

Start the rstudio web gui

Open in browser: Web UI link from log above: http://localhost:9633?tkn=ee8e3c6e34ad22ea267a9532635cabe8d1b5fbc59b8705e91737a6129a866b5b


Preserve server data

To use the same server data and VSCode environment, use option --server-data-dir with some location. The location should be the same each time to save configuration. In this example $SCRATCH/vscodedata is the location example.

Stop job

if you wish to to end your sbatch, use scancel <JOBID> command, where JOBID is your tunnel JOBID you can look it up with hpc-jobs or qsueue -u $USER commands.

scancel <JOBID>

Status of jobs and finished jobs data

To check submitted and running jobs use hpc-jobs or qsueue -u $USER commands.

To check information about finished and historic jobs use hpc-jobs-history command. For example with option "-d 30"  that command shows all user's jobs from last 30 days. More info in hpc-jobs-history -h

hpc-jobs-history -d 30
  • No labels