Jupyterhub: A barrier-free entrance to DKRZ#

With an account for mistral, you can connect via ssh on a terminal interface to the system. This requires knowledge in shell programming. As a user friendly alternative, we offer you the jupyterhub web service, which, by the way, also allows you to run terminals as with ssh as well.

Features in combination with notebooks:

  • Software independent and interactive access to HPC resources

  • Tutorials prepared by experts and formatted as Jupyter-notebooks for a steep learning curve

  • Inline plot creation for a all in one solution

  • Fully supported and maintained at DKRZ

Advanced programming with a beginner friendly control

How it works:

What you have to do:

  1. You log in via: https://jupyterhub.dkrz.de/hub/login

  2. You request a notebook server

What DKRZ does in turn:

  1. A server is spawned as a slurm job on mistral. It uses resources as specified by your request.

  2. Your server runs for as long as you specified in the request. In that time, you can close the tab and revisit jupyterhub without it is shut down.

Control Panel:#

  • Either work with jupyterhub or jupyterlab

  • Navigate with a file browser

  • Launch Notebooks or Consoles

Why do we promote Jupyter-Notebooks?#

  • Cells

    • Clear view: Mark Cells as Code, Markdown or Raw

    • Interactive: Run a cell individually without running the entire script

  • Code language: Python, but also Bash, R, Julia, Latex:

    • Use ! before the commands and bash runs it instead of the python interpreter

    • Define a entire cell as bash or latexwith the %% magic

!ls
Analysis.rst		      License-and-Citation.rst
backups-archive.ipynb	      Preparation.rst
CMIP6-Data-Pool.ipynb	      quality-assurance-cfchecker-ceda.ipynb
conf.py			      quality-assurance-prepare.ipynb
Curation.rst		      Quality-Assurance.rst
Dashboards.rst		      Replication.rst
Demos.rst		      Server-side-analysis.ipynb
egest-service.ipynb	      Server-side-resources.rst
FAQ.rst			      services_overview.csv
Find-and-Access.rst	      Services.rst
globus-doc.ipynb	      _static
index.rst		      statistics-cmip6.ipynb
Ingestion.rst		      _templates
intake-catalog-service.ipynb  Tools-and-platforms.rst
intake-esm.yaml		      Transfer.rst
intake-view.rst		      Usage.rst
%%bash
ls
Analysis.rst
backups-archive.ipynb
CMIP6-Data-Pool.ipynb
conf.py
Curation.rst
Dashboards.rst
Demos.rst
egest-service.ipynb
FAQ.rst
Find-and-Access.rst
globus-doc.ipynb
index.rst
Ingestion.rst
intake-catalog-service.ipynb
intake-esm.yaml
intake-view.rst
License-and-Citation.rst
Preparation.rst
quality-assurance-cfchecker-ceda.ipynb
quality-assurance-prepare.ipynb
Quality-Assurance.rst
Replication.rst
Server-side-analysis.ipynb
Server-side-resources.rst
services_overview.csv
Services.rst
_static
statistics-cmip6.ipynb
_templates
Tools-and-platforms.rst
Transfer.rst
Usage.rst
%%latex
\begin{align}
\frac{\partial u}{\partial t} + \nabla \cdot \left( \boldsymbol{v} u - D\nabla u \right) = f
\end{align}
\[\begin{align} \frac{\partial u}{\partial t} + \nabla \cdot \left( \boldsymbol{v} u - D\nabla u \right) = f \end{align}\]
  • Modules and extensions

    • python and jupyter benefit from a quickly evolving package universe

    • Embed html to the notebook

    • Automatic code formatting when executing cell

%load_ext lab_black
from IPython.display import HTML

HTML(
    '<iframe src="https://jupyterhub.gitlab-pages.dkrz.de/jupyterhub-docs/overview.html" width="576" height="420" frameborder="0"></iframe>'
)
/mnt/root_disk3/gitlab-runner/.conda/envs/mambaenv/lib/python3.10/site-packages/IPython/core/display.py:419: UserWarning: Consider using IPython.display.IFrame instead
  warnings.warn("Consider using IPython.display.IFrame instead")
  • Kernels:

    • Predefined Software Environments can be set in the upper right by using a specific kernel

    • On Jupyterhub, you can choose between a hands full of different configurations

    • Customized kernels can be implemented with conda. See the docs for a tutorial

Conclusion:#

⇨ Jupyterhub is your laboratory in the web browser#