JupyterHubHPC
Overview
JupyterHubHPC (or JupyterHub at the Cyfronet Centre) service lets you configure and start JupyterLab servers on Cyfronet's computing clusters (Ares and Athena).
JupyterHubHPC functionality is based on JupyterHub technology with customizations tailored for HPC environments at Cyfronet.
Getting started
Requirements
- Active computing grant and access to one of the supported clusters (Ares, Athena, or Helios)
- Active Access to the Jupyter HUB at the Cyfronet Centre service
Starting the first JupyterLab server
- Log in to JupyterHubHPC with your PLGrid account
- Configure parameters for the job that will start JupyterLab. Take into account all resources you will need to perform planned computations. Note that JupyterHubHPC jobs are limited to a single computing node. Available options are as follows:
- Cluster - Cluster on which you'd like to start the JupyterLab server
- Slurm account - For details, please refer to the general PLGrid documentation
- Partition - For details, please refer to the general PLGrid documentation
- Number of nodes - Number of nodes to be reserved for the job
- Number of CPU cores per node - Number of CPU cores per node to be reserved for the job
- Number of GPUs per node - Field available only if selected Slurm account is dedicated for GPU resources (
-gpusuffix) - Job memory limit per node - Maximum amount of memory (RAM) per node for the job. The job may be ceased without notice when the limit is exceeded.
- Job time limit - Note that all computations started using the JupyterLab server will be ceased when the time limit is exceeded
- Tooolchain - See Toolchains section below
- Memfs - Enables memfs
- Localfs - Enables localfs
- Addons - Enable integration of JupyterLab with external software
- Visual Studio Code - with this addon, a web-based version of Visual Studio Code can be started from JupyterLab's interface
- Click Start
The newly configured job will now be queued to run on the selected cluster.
Depending on the amount of requested resources and cluster occupancy, it may take longer for the job to start.
In case of any recurring errors during that step, please contact the Helpdesk.
Named Servers
Apart from the default (unnamed) JupyterLab server, JupyterHubHPC allows multiple so-called named servers to be started simultaneously.
In order to start a new named server:
- Navigate to the Home tab in JupyterHubHPC Control Panel
- In the Named Servers section, type the name of the new server and click Add New Server
- Configure job parameters as in the default server configuration step
Managing servers (Control Panel)
The list of started servers is available under the Home tab in the JupyterHubHPC Control Panel. To access JupyterHubHPC Control Panel from active JupyterLab, navigate to File -> Hub Control Panel. Once in the Control Panel, one can open JupyterLab's interface or stop servers.
Toolchains
Toolchain defines a set of software modules that are loaded upon the start of the job. Most importantly, they include Python and JupyterHub modules.
2025b- The most recent toolchain based on GCC14.3.0. Includes Python3.13.5and JupyterHub4.5.6. Current default.2023b- Legacy toolchain based on GCC13.2.0. Includes Python3.11.5.and JupyterHub4.2.0.
User-defined Python kernels
By default, JupyterLab servers started via JupyterHubHPC use Python version default for the selected toolchain and the user's global environment. However, one can configure virtualenv or conda environments to be available as JupyterLab kernels.
Environment location
As Python environments tend to grow quickly and extend the size of the user's home directory, we recommend putting them in the $PLG_GROUPS_STORAGE/<group name> directory.
The base procedure is as follows:
Virtualenv
Python versions
While it is usually possible to use virtualenvs based on Python versions other than toolchain-default as kernels, we do not provide support for such environments and suggest using the default Python as the base to avoid potential compatibility issues.
-
Load the Python module. For the
2025btoolchain:- On the Ares cluster:
- On Helios and Athena clusters
-
Create and activate your virtualenv
-
Install the ipykernel package
Virtualenvs and modules
If any additional modules have been used to create a virtualenv-based environment and kernel, the same set of modules must be loaded inside the JupyterLab session for the kernel to work correctly.
JupyterLabs started with JupyterHubHPC have a plugin for managing modules enabled by default. This can be done from the Software Modules tab in the JupyterLab's Activity Bar.
GCCcore/13.2.0 and Python/3.11.5 modules are loaded automatically for every JupyterLab session.
Conda
Support for Conda environments
We do not provide additional support for Conda environments. For the best compatibility, please use virtualenvs.
- Create and activate your Conda environment with the Python version specified (this part is required for the environment to work within JupyterLab started via PLGridHub)
- Install the ipykernel package
Registering the kernel in JupyterLab
Finally, register the environment (both Conda and virtualenv) on the list of kernels in JupyterLab.
python -m ipykernel install --user --name "<kernel_name>" --display-name "<kernel_display_name>" --env PYTHONPATH ""
Common issues
sbatch: command not found
This error message might occur when you have modified .bashrc file causing global cluster settings to not propagate correctly.
Please make sure your .bashrc file contains the following code, and it is always executed
Spawn failed: The Jupyter batch job has disappeared while pending in the queue or died immediately after starting.
This error message might occur when .bashrc file contains echo commands or prints in other ways.
Please make sure your .bashrc file does not output anything to stdout or stderr.
Note that we do not provide support for shells other than Bash.
If the above solutions does not help, please contact Helpdesk.