• A
  • A
  • A
  • АБВ
  • АБВ
  • АБВ
  • А
  • А
  • А
  • А
  • А
Обычная версия сайта

Конвертация Jupyter-ноутбуков для запуска в пакетном режиме на суперкомпьютере (запуск через очередь задач)

👉Вернуться к списку инструкций

Jupyter-ноутбуки можно сконвертировать в py-файл для запуска на суперкомпьютере в пакетном режиме. Благодаря такому режиму Вы сможете запускать сразу множество вычислительных задач с различными параметрами, не дожидаясь освобождения ресурсов. Поиск ресурсов для ваших задач будет круглосуточно выполнять планировщик slurm. Задачи начнут работу сразу после появления ресурсов, не дожидаясь вашего подключения к ноутбуку. После окончания работы пакетная задача будет завершена автоматически и ресурсы суперкомпьютера будут переданы следующим задачам без простоя.

Предварительно следует открыть ноутбук в веб-интерфейсе Jupyter и убедиться, что код подготовлен к автоматическому выполнению без участия пользователя.

Конвертация ноутбука в py-файл возможна следующими способами:
  1. В интерфейсе JupyterHub перейти в меню File -> Save and Export Notebook As... -> Executable script. После чего загрузить полученный файл на суперкомпьютер.
  2. В классическом интерфейсе Jupyter Notebook выбрать пункт File -> Download as -> Python (.py). После чего загрузить полученный файл на суперкомпьютер.
  3.  В консоли суперкомпьютера загрузить модуль Python: module load Python и выполнить команду конвертации ноутбука: jupyter nbconvert --to python notebook_name.ipynb (сконвертированный py-файл будет сохранён в каталоге с ноутбуком под названием notebook_name.py).

Для выполнения данного py-файла на суперкомпьютере в пакетном режиме необходимо подготовить sbatch-файл. Пример sbatch-файла converted_notebook.sbatch для запуска сконвертированного ноутбука:

#!/bin/bash
#SBATCH --job-name=converted_notebook       # Название задачи 
#SBATCH --time=01-00                        # Максимальное время выполнения
#SBATCH --nodes=1 # Все CPU и GPU будут выделены на одном вычислительном узле #SBATCH --cpus-per-task=4 # Количество CPU на одну задачу #SBATCH --gpus=2 # Требуемое кол-во GPU
#SBATCH --constraint="type_a|type_b|type_c" # Типы вычислительных узлов
#SBATCH --mail-type=END,FAIL # Укажите ваш email для отправки уведомлений
#SBATCH --mail-user=ваша_почта # События, требующие уведомления
module purge # Отключаем все ранее загруженные модули module load Python/PyTorch_GPU_v1.11 # Загрузка модуля Python PyTorch_GPU_v1.11 ipython converted_notebook.py # Выполнение расчёта

Укажите требуемые параметры для запуска задачи, название модуля/окружения, адрес электронной почты и имя файла. Для запуска задачи на суперкомпьютере необходимо выполнить команду sbatch converted_notebook.sbatch
Код из py-файла будет выполнен с использованием ipython точно также, как он выполняется в Jupyter-ноутбуке.
Подробно процесс подготовки sbatch-файлов и запуска задач описан в отдельной инструкции. Изучив инструкцию, вы сможете многократно запускать одну и ту же программу с разными входными параметрами (пакетный режим).


Ограчения пакетного режима

  • В пакетном режиме запуска задач не будут сформированы графики с использованием модулей типа matplotlib.pyplot. Графики можно сохранять в файл, используя метод pyplot.savefig('plot_name.png')

 

Нашли опечатку?
Выделите её, нажмите Ctrl+Enter и отправьте нам уведомление. Спасибо за участие!
Сервис предназначен только для отправки сообщений об орфографических и пунктуационных ошибках.