Skip to content

CEOAS JupyterHub

For CEOAS users running Jupyter notebooks and other interactive software on the cluster, CEOAS has a JupyterHub server available to on-campus and VPN users located at https://jupyter-hpc.ceoas.oregonstate.edu. All members of CEOAS are granted access by default and can login with their ONID username and password. Jupyter Notebooks spawned through the JupyterHub server run on the ceoas-interact partition and are both subject to and count towards the regular user limits on the partition.

Resource and Time Limits

When logging in, select in the drop-down which configuration you'd like. Note that since the JupyterHub notebooks run on the ceoas-interact partition, notebooks may fail to launch if you select a configuration that would put you above the total per-user allocation. For example, if you currently have a job running on ceoas-interact using 1 core and 8GB of memory, launching the 8 core/128GB job will wait in the queue until it either times out or the other job completes/is canceled, whichever happens first. While you are free to request up to the limit, please also be courteous by not allocating more than your job will use; most Python code is single-threaded and will not benefit from allocating more than two cores.

Using Python

By default, there are two Python kernels available to all users. The first one simply titled "Python 3" is a a minimal installation and only contains the packages required for JupyterHub to function. The one titled "research" contains a variety of pre-installed packages useful for earth, ocean, and atmospheric sciences. If you feel there is a package that would be useful for multiple users, you can contact CEOAS Support to request that it be included. Additional globally shared environments can also be requested, however our preference is to add requested packages to the existing environment unless there's a compelling reason to create a new one (such as a large number of people needing a different version of Python).

Adding Python kernels/environments

Users may also add their own Python kernels and associated virtual environments. This can be done as through a regular HPC session or by using the terminal available in JupyterHub. Using conda as an environment manager:

# (Optional) Create the environment if it doesn't already exist
conda create -n <envname>
# Activate the environment that will be made available in JupyterHub
conda activate <envname>
# The ipykernel module is the backend portion that links an environment to JupyterHub
conda install -c conda-forge ipykernel
# Install the kernelspec for the environment into the JupyterHub search path so it can find it
# --name must be unique across all user-kernels and is used internally
# --display-name is optional and is the name the kernal will display in the JupyterHub interface
# --prefix is optional and specifies the location to install the kernel. It is not needed for single-user
#   installs but can be used to share kernels with others by installing them into a shared location
python -m ipykernel install --user --name <envname> --display-name <displayname>
This will make the kernel available in the JupyterHub interface. If you currently have JupyterHub open, you will need to refresh the browser for it to appear.

Using MATLAB

MATLAB is available by default for all users, currently version 2024b. The MATLAB Kernel option launches it as a regular Jupyter notebook, while Open MATLAB launches the full GUI version. After launching either GUI version or attempting to run code in the notebook version, the licensing window will pop-up. Select the "Existing License" tab and then click "Start MATLAB". Note that MATLAB can take anywhere from thirty seconds to a few minutes to launch, depending on server and storage load.

Other languages

While we do not provide a shared pre-installed environment for other languages, many of them can still be installed on a per-user basis in a similar manner to how per-user Python environments can be installed. Contributions to this section are highly welcome by providing install instructions to CEOAS Support.

Julia

Julia is the easiest to install. While in pkg mode with the environment you'd like to use activated:

add IJulia
This will install both the kernel required for Julia to work with JupyterHub and automatically install the kernelspec for JupyterHub to find the environment

R

R is only marginally more difficult to install than Julia is. In your R environment:

install.packages('IRkernel')
IRkernel::installspec()
(Note that these instructions haven't been fully validated by a regular user; we would appreciate any feedback on them or confirmation that they work.)