Launch Positron on Alpine, the University of Colorado Boulder's HPC cluster.
This SLURM batch script allocates a compute node on Alpine and provides SSH connection instructions for remote development with Positron. The script uses a ProxyJump SSH configuration to connect through Alpine's login node to your allocated compute node.
- Access to Alpine HPC cluster
- Positron installed on your local machine
- SSH key configured for Alpine access
If you haven't already, you need to add your local machine's public SSH key to Alpine's authorized_keys file. This allows your local machine to authenticate with Alpine compute nodes via the ProxyJump connection.
-
On your local machine, copy your public key:
cat ~/.ssh/id_rsa.pubOr if you use a different key:
cat ~/.ssh/id_ed25519.pub -
Log into Alpine and add the key to authorized_keys:
ssh <your-username>@login.rc.colorado.edu
-
On Alpine, add your public key:
mkdir -p ~/.ssh chmod 700 ~/.ssh echo "your-public-key-content" >> ~/.ssh/authorized_keys chmod 600 ~/.ssh/authorized_keys
Replace
your-public-key-contentwith the output from step 1.
By default, Positron installs its server components to ~/.positron-server, but $HOME on Alpine has limited space. To avoid filling up your home directory, set up Positron Server on /scratch/alpine:
On Alpine (login or compute node):
# Create directory on scratch (larger allocation)
mkdir -p /scratch/alpine/${USER}/.positron-server
# Create symlink from home to scratch
ln -s /scratch/alpine/${USER}/.positron-server ~/.positron-serverImportant notes:
/scratch/alpineis purged every 90 days of files not accessed- If the directory is purged, Positron will automatically reinstall the server when you next connect
- You may need to recreate the symlink if it's removed:
ln -s /scratch/alpine/${USER}/.positron-server ~/.positron-server - For more details on how Positron Remote-SSH works, see: https://positron.posit.co/remote-ssh.html#how-it-works-troubleshooting
sbatch alpine-positron.shsqueue -u $USERWait until your job is in the "R" (running) state.
cat logs/positron-<JOB_ID>.outReplace <JOB_ID> with your actual job ID from squeue.
-
Open Positron on your local machine
- Press
Cmd+Shift+P(Mac) orCtrl+Shift+P(Windows/Linux) - Select "Remote-SSH: Open SSH Configuration File"
- Press
-
Paste in your SSH config (from the log file) and save:
Host positron-<JOB_ID> HostName <compute-node> User <your-username> ProxyJump <your-username>@login-ci.rc.colorado.edu -
Select "Remote-SSH: Connect to Host"
-
Choose
positron-<JOB_ID>from the list -
Positron will install its server components on the remote node automatically
Always cancel your job to free resources:
scancel <JOB_ID>The script allocates resources via SLURM directives in alpine-positron.sh:
--time=08:00:00- Maximum job duration (8 hours)--mem=20gb- Memory allocation (20 GB)--partition=amilan- Alpine partition for general compute--qos=normal- Quality of service tier
Adjust these parameters based on your computational requirements. See Alpine documentation for available options.
- Check queue status:
squeue -u $USER - Check available resources:
sinfo - Verify your account has hours:
curc-quota
- Ensure SSH config was added to your local
~/.ssh/config(not on Alpine) - Verify job is running:
squeue -u $USER - Check log file for correct hostname and job ID
- Verify your local SSH public key is in Alpine's
~/.ssh/authorized_keys(see Setup section)
- SSH connection may timeout if idle. The job itself will continue running.
- Reconnect using the same SSH host entry.
R interpreter discovery can be unreliable on remote systems. If you don't see R under "Start Session" (even though Python interpreters appear):
If you find you are able to use R versions available in the modules system, please let me know.
-
Install R through mamba/conda on the remote system:
mamba install -c conda-forge r-base
-
Enable conda discovery in Positron settings (on your local machine):
- Press
Cmd+,(Mac) orCtrl+,(Windows/Linux) to open Settings - Search for "Positron R Interpreters Conda Discovery"
- Enable the checkbox, or add to your
settings.json:{ "positron.r.interpreters.condaDiscovery": true }
- Press
-
Manually trigger interpreter discovery:
- Press
Cmd+Shift+P(Mac) orCtrl+Shift+P(Windows/Linux) - Select "Interpreter: Discover all interpreters"
- Press
After these steps, R should appear in the interpreter dropdown and start successfully.
Note: There are multiple discussions in the Positron repository about interpreter discovery issues, though solutions may vary by system configuration.
- The compute node allocation will run for the full time requested or until you cancel it
- Always remember to
scancelyour job when done to free resources - Log files are stored in the
logs/directory with the patternpositron-<JOB_ID>.out