Run Jupyter on Orchestra 2


Keywords
jupyter, remote, ssh, slurm, pexpect, orchestra, o2
License
MIT
Install
pip install jupyter-o2==1.1.4

Documentation

Jupyter-O2

PyPI version PyPI pyversions PyPI license

Jupyter-O2 is a command-line tool that remotely runs Jupyter on Orchestra 2 (O2), an HPC cluster managed by the HMS Research Computing group.

Installation

First, follow the O2 wiki's procedure to set up Jupyter for your account on O2. (If you have already installed Jupyter on O2, you can skip this step.)

Next, on your local machine:

Install Jupyter-O2.

pip install jupyter-o2

Then, generate the config file.

jupyter-o2 --generate-config

Follow the printed path to jupyter-o2.cfg and edit according to its instructions, particularly the DEFAULT_USER and INIT_JUPYTER_COMMANDS fields. You may copy this file to any of the locations listed by jupyter-o2 --paths for easier access.

Make sure you have X11 forwarding active (install XQuartz if on a Mac).

For more info on setting up Jupyter and troubleshooting Jupyter-O2, see the jupyter-o2 tips.

Requirements and compatibility

  • python 3.6+
  • pexpect 4.5+
  • POSIX: Jupyter-O2 requires a POSIX environment such as macOS or Linux. If you have a Windows machine, you can try using WSL2

Usage

Jupyter-O2 should be run locally using the following command format:

jupyter-o2 [subcommand]

Examples: jupyter-o2 notebook or jupyter-o2 lab (try JupyterLab!)

This will automate the "Opening a Notebook" procedure on the O2 wiki.

Note that if Jupyter is installed on your machine, Jupyter-O2 can also be run as a Jupyter subcommand:

jupyter o2 lab

For info on the Jupyter-O2 command-line options, use jupyter-o2 --help.

Two-factor authentication

Jupyter-O2 detects the Duo two-factor authentication prompt and requests a Duo push by default (code 1). To send a pre-generated code, use the argument --2fa-code <code>, replacing <code> with your code.

Experimental: use --2fa-code interact to interactively respond to the Duo prompt. This allows you to request a phone or text push and enter the code you receive.