Запуск ноутбуков Jupyter в системах высокопроизводительных вычислений (HPC): подробное руководство

Jupyter Notebook — мощный инструмент для интерактивного анализа данных и научных вычислений. Хотя он обычно используется на локальных компьютерах, запуск Jupyter Notebooks в системах высокопроизводительных вычислений (HPC) может значительно улучшить вычислительные возможности. В этой статье мы рассмотрим различные методы запуска Jupyter Notebooks в системах HPC, а также приведем примеры кода для каждого метода.

Методы запуска Jupyter Notebook на HPC:

  1. Переадресация портов SSH:

    • Установите SSH-соединение с системой HPC.
    • Перенаправьте порт, используемый сервером Jupyter Notebook, на ваш локальный компьютер.
    • Запустите сервер Jupyter Notebook в системе HPC.
    • Откройте блокнот Jupyter в локальном веб-браузере.
    ssh -L 8888:localhost:8888 username@hpc-system
    jupyter notebook --no-browser
  2. Пакетная отправка заданий:

    • Создайте пакетный скрипт, указав необходимые ресурсы и команду Jupyter Notebook.
    • Отправьте пакетный сценарий в планировщик HPC.
    • Подождите, пока задание запустится и получите выделенные ресурсы.
    • Доступ к Jupyter Notebook, используя выделенные ресурсы.
    # Example batch script (e.g., slurm.sh for SLURM scheduler)
    #!/bin/bash
    #SBATCH -N 1
    #SBATCH -c 4
    #SBATCH --gres=gpu:1
    # Load necessary modules and activate virtual environment
    module load python/3.8
    source activate myenv
    # Launch Jupyter Notebook
    jupyter notebook --no-browser
  3. Контейнеризация:

    • Создайте образ Docker, содержащий необходимые зависимости и блокнот Jupyter.
    • Отправьте образ Docker в реестр контейнеров.
    • Запустите образ Docker в системе HPC.
    • Доступ к Jupyter Notebook через открытый порт.
    # Example Dockerfile
    FROM python:3.8
    # Install dependencies
    RUN pip install jupyter
    # Copy notebooks and scripts
    COPY notebooks /app/notebooks
    # Set working directory
    WORKDIR /app
    # Expose Jupyter Notebook port
    EXPOSE 8888
    # Launch Jupyter Notebook
    CMD ["jupyter", "notebook", "--ip=0.0.0.0", "--no-browser"]
    # Build and run Docker image
    docker build -t myjupyter .
    docker run -p 8888:8888 myjupyter
  4. Интерактивная подача вакансий:

    • Запросите интерактивный сеанс в системе HPC.
    • Загрузите необходимые модули и активируйте виртуальную среду.
    • Запустите сервер Jupyter Notebook.
    • Доступ к Jupyter Notebook, используя выделенные ресурсы.
    # Example command for SLURM scheduler
    srun -N 1 -c 4 --gres=gpu:1 jupyter notebook --no-browser

Работа Jupyter Notebooks на высокопроизводительных вычислительных системах открывает новые возможности для анализа данных и научных вычислений. Используя переадресацию портов SSH, пакетную отправку заданий, контейнеризацию и интерактивную отправку заданий, пользователи могут использовать мощь ресурсов HPC, сохраняя при этом гибкость и удобство Jupyter Notebooks.