# 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:

• 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:

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

• 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