"JupyterHub, a multi-user Hub, spawns, manages, and proxies multiple instances of the single-user Jupyter notebook server. JupyterHub can be used to serve notebooks to a class of students, a corporate data science group, or a scientific research group."
JupyterHub eliminates the requirement for users to install their own version of Jupyter Notebook; they can connect to the application using only a recent web browser.
Compute Canada initiatives
Some regional initiatives offer access to computing resources through JupyterHub.
Note that the compute nodes running the Jupyter kernels do not have internet access. This means that you can only transfer files from/to your own computer; you cannot download code or data from the internet (e.g. cannot do "git clone", cannot do "pip install" if the wheel is absent from our wheelhouse). You may also have problems if your code performs downloads or uploads (e.g. in machine learning where downloading data from the code is often seen).
JupyterHub on clusters
On the following clusters, use your Compute Canada username and password to connect to JupyterHub:
- JupyterHub on Béluga provides access to JupyterLab servers spawned through jobs on the cluster Béluga
- JupyterHub on Hélios provides access to Jupyter Notebook servers spawned through jobs on the GPU cluster Hélios.
- JupyterHub on Niagara is a node which has been designated as a Jupyter Hub and it can run Jupyter Notebook sessions. To learn more, see the SciNet JupyterHub wiki page.
JupyterHub for universities and schools
- The Pacific Institute for the Mathematical Sciences in collaboration with Compute Canada and Cybera offer cloud-based hubs to universities and schools. Each institution can have its own hub where users authenticate with their credentials from that institution. The hubs are hosted on the Compute Canada Cloud and are essentially for training purposes. Institutions interested in obtaining their own hub can visit http://syzygy.ca. See Compute Canada and PIMS launch Jupyter service for researchers.
Once logged in, depending on the configuration of JupyterHub, a user can set different options for their Jupyter server before pressing the Start button. It is similar to requesting resources for an interactive job.
For example, Server Options available on Béluga's JupyterHub are:
- Account to be used: any
ctb-*account a user has access to
- Time (hours) required for the session
- Number of (CPU) cores that will be reserved on a single node
- Memory (MB) limit for the entire session
- (Optional) GPU configuration: at least one GPU
- User interface (see below)
While JupyterHub allows each user to use one Jupyter server at a time on each hub, there can be multiple options under User interface:
- Jupyter Notebook (classic interface) - Even though it offers many functionalities, the community is moving towards JupyterLab, which is a better platform that offers many more features
- JupyterLab (recommended, modern interface)
- Terminal (for a single terminal only) - It gives access to a terminal connected to a remote account, which is comparable to connecting to a server through an SSH connection
Note: JupyterHub could have also been configured to force a specific user interface. This is usually done for special events.