Springe direkt zu Inhalt

JupyterLab

Einleitung

JupyterLab ist eine web-basierte Schnittstelle zu Project Jupyter, die die Interaktion zwischen Dokumenten und Aktivitäten wie Jupyter notebooks, Texteditoren und Terminals erlaubt.

JupyterLab sollte nicht auf dem Login-Knoten gestartet werden.  Stattdessen sollte es auf einem Rechnenknoten laufen.  Dies kann man erreicht mit folgendem Ansatz.

Passwort erzeugen

Folgendes muss nur einmal ausgeführt werden.

Führen Sie die unten stehenden Befehle auf dem Login-Knoten des HPC-Clusters aus.  Sie werden aufgefordert werden, ein Passwort zu erzeugen, dass Sie später verwenden werden, um auf JupterLab zu zugreifen.

module add JupyterLab/4.0.5-GCCcore-12.3.0
jupyter lab --generate-config
jupyter lab password

Batch-Job abschicken

Verwenden Sie folgendes Skript als Vorlage und schicken Sie es als regulären Job mit sbatch ab.

#!/bin/bash                                                                                                                                                                                   

#SBATCH --job-name=jupyter-notebook                                                                                                                                                           
#SBATCH --nodes=1                                                                                                                                                                             
#SBATCH --ntasks=1                                                                                                                                                                            
#SBATCH --cpus-per-task=8                                                                                                                                                                  
#SBATCH --mem=20G                                                                                                                                                                             
#SBATCH --gres=gpu:1                                                                                                                                                                          
#SBATCH --qos=hiprio                                                                                                                                                                          
#SBATCH --partition=gpu                                                                                                                                                                       
#SBATCH --time=3:00:00                                                                                                                                                                        

# Get tunneling information                                                                                                                                                                   
XDG_RUNTIME_DIR=""
node=$(hostname -s)
port=`python3 -c 'import socket; s=socket.socket(); s.bind(("", 0)); print(s.getsockname()[1]); s.close()'`

# Tunneling instructions                                                                                                                                                                      
echo -e "                                                                                                                                                                                     
On your local computer, create an SSH tunnel:                                                                                                                                                 
                                                                                                                                                                                              
  ssh -N -f -L ${port}:${node}:${port} ${USER}@curta.zedat.fu-berlin.de                                                                                                                       
                                                                                                                                                                                              
On your local computer, point a browser to:                                                                                                                                                   
                                                                                                                                                                                              
  http://localhost:${port}              

and enter the password you created earlier.                                                                                                                                                      
                                                                                                                                                                                              
"

# Load modules and run JupyterLab                                                                                                                                                             
module add JupyterLab/4.0.5-GCCcore-12.3.0
jupyter lab path
jupyter-lab --no-browser --port=${port} --ip=${node}

Verbindung zu JupyterLab herstellen

Man muss dann den Anweisungen folgen, die im Job-Output zu lesen sind.

Schlagwörter