header.png

Author: Jens Henrik Göbbert

Index

JupyterLab 3.2 on Jupyter-JSC

JupyterLab is continuously evolving and the current version 3.2 brings a lot of new fantastic functionalities and possibilities.
All the more we are happy to announce that we can now provide you with JupyterLab 3 as an access point to our systems via Jupyter-JSC on https://jupyter-jsc.fz-juelich.de.

Jupyter-JSC saw the light of day four years ago and continues to grow at JSC with new functions and tasks. Its main purpose is to enable interactive supercomputing via JupyterLab at Jülich Supercomputing Centre. It is part of the Helmholtz Cloud (https://cloud.helmholtz.de) and makes it possible to use the HPC systems of the JSC and also the HDF Cloud in everyday work completely from within the web browser. Today, about 500 JupyterLab sessions are started by about 100 different users via Jupyter-JSC per week.

To help you get the most out of the JupyterLab 3 setup, here are the Highlights, Interface Changes and Extensions:


Highlights

Debugger

JupyterLab 3 comes with a front-end debugger by default. This means that notebooks, code consoles, and files can now be debugged from JupyterLab directly.
This is possible, if the kernel supports the Jupyter Debugger Protocol which is for the start true for the default Python kernel driven by IPython in the included version 6+.
grafik.png

(more details HERE and HERE )

Prebuild Extensions

The software architecture of JupyterLab has always allowed extensions to customize/improve any part of JupyterLab. However, installing an extension required rebuilding the whole JupyterLab. Thus, due to the system-wide installation, the choice of extensions under Jupyter-JSC was hard-wired to the JupyterLab installation in the past.

JupyterLab 3 now supports so-called prebuild extensions in addition to the classical source extensions.
They are installed independently from the JupyterLab installation like any other Python package and do not require a rebuild of the underlying JupyterLab.

Prebuild extensions thus bring great advantages as ...

  • ... there is no need to rebuild JupyterLab to install new prebuild extensions.
  • ... the choice of activated prebuild extensions is made at startup of JupyterLab, not at build time.
  • ... a system-wide JupyterLab installation can be technically extended users/projects with additional prebuild extensions.
  • ... updates of prebuild extensions can be done separately from the JupyterLab installation with much smaller risk to break the JupyterLab installation.
  • ... competing dependencies of different extensions are better shielded from each other.

(more details HERE and HERE)

Example:
Currently we use the new possibility of prebuild extensions to load the extension NVDashboard when JupyterLab starts on a system with GPUs.
grafik.png

(more details HERE )

Collaborative editing — à la Google Docs

NOTE: At the moment this feature is NOT supported within Jupyter-JSC as it is forbidden to share user accounts.

Multiple attempts have been made to introduce collaborative editing in JupyterLabs - finally it came in JupyterLab 3.1 to stay!
Now, file documents and notebooks have the possibility for collaborative editing using the Yjs shared editing framework.
Yjs is network agnostic (p2p!) and there has no need for a central management server and still allows features like offline editing and undo/redo for a shared document.
grafik.png

(more details HERE and HERE )

Changes in the Interface

  • A new visual indicator was introduced to highlight cells in which the code changed in the editor since last execution
    grafik.png grafik.png
  • Add a menu entry to show/hide hidden files in the file browser
    grafik.png
  • The file browser now has a filter input which filters the list of files using the same fuzzy matching as the command palette.
    grafik.png
  • The Table of Content extension got integrated into JupyterLab 3. Now you can easily see and navigate through the structure of your document.
    grafik.png
  • The property inspector moved to the right sidebar.
    grafik.png
  • The command palette now comes floating on the center of the top of the window. This enables users to quickly invoke a command while keeping the sidebar closed or switching sidebar panels.
    You can access the command palette using the View menu or directly using the shortcut Ctrl+Shift+C.