Open a notebook from your computer

JupyterLab runs on the allocated GPU node. Your browser runs on your own computer. SSH encrypts the laptop-to-login hop; both site launch scripts enable TLS for the login-to-compute hop. Jupyter requires its private token. Keep the token and the generated certificate key out of Git.

Start the bounded job with scripts/submit-arrhenius-jupyter.sh on Arrhenius or scripts/submit-jupiter-jupyter.sh on JUPITER, as described in their respective setup pages. On your laptop, the included script looks up the node of that running Slurm job and forwards through the login host:

bash scripts/connect-from-laptop.sh notebook <login-ssh-alias> <job-id>

Use the alias from your own laptop’s SSH configuration for the site’s login node. The same laptop script supports both sites; no personal hostname is embedded in the lesson.

Then open the private token URL printed by Jupyter, replacing its port with 18888 and keeping https://. The script never reads or stores the token. The certificate is self-signed. Before forwarding, the connection script compares the live compute-node certificate with the owner-private jupyter-<job-id>.fingerprint beside the job log. It refuses a mismatch. The browser may still warn because this short-lived certificate is not signed by a public authority; confirm the script’s successful check before accepting that warning. An expired job must not be reused.

The live HTML handout is a separate loopback service. From your laptop, use:

bash scripts/connect-from-laptop.sh html <html-host-ssh-alias>

This maps the host’s port 8766 to http://127.0.0.1:18766/ on your laptop. Change the local or remote ports with the optional arguments if necessary.

Double-click a lesson .md file in JupyterLab. The provided launch script sets MyST Markdown to open as a Jupytext notebook by default. The Markdown file remains the editable source; the course does not maintain .ipynb copies. Notebook cells can run in any order only where a page explicitly says so. GPU exercises should run sequentially in one kernel.