Запуск Jupyter Notebook для вычислений
Использование: только для запуска уже подготовленных расчетов на сервере. Запрещается использовать установленный на сервере JUPYTER NOTEBOOK для учебной работы и для процесса разработки!
Для учебных целей рекомендуется использовать бесплатный web-сервис Google Colab. Процесс запуска Jupyter Notebook на сервере:
1. Подключаемся по протоколу ssh к серверу gpu.hpc.susu.ru на порту 2222. Это можно сделать через Putty в Windows, ssh/cyberduck в Linux/Mac.
~$ ssh -p 2222 gpu.hpc.susu.ru
3. Вы должны будете попасть на сервер и увидеть приветственное сообщение с инструкцией по запуску Jupyter Notebook
Для работы с Jupyter Notebook выполните следующие команды:
4. Выполните команду
~$ module load anaconda/2020.07
5. Рекомендуется создавать личные окружения для работы с библиотеками:
~$ conda create -n <название_окружения> -python=<версия_python>
6. Затем необходимо активировать окружение и перезапустить ssh подключение:
~$ conda init bash
~$ exit
7. Затем снова подключаемся к серверу и увидим, что перед именем пользователя появится следующее:
~$ ssh -p 2222 gpu.hpc.susu.ru
~$ (base)<ваше_имя_пользователя>@gpu-host:/home/…
8. Это означает, что все выполнено корректно и можно подключаться к вашему окружению conda:
~$ conda activate <имя_окружения>
9. Вы увидите следующее:
~$ (<название_окружения>)<ваше_имя_пользователя>@gpu-host:/home/...
10. Для того, чтобы Jupyter Notebook использовал установленные библиотеки необходимо установить его в ваше conda окружение:
~$ conda install jupyter notebook
11. После этого вы можете устанавливать необходимые библиотеки в ваше окружение, например:
~$ conda install tensorflow-gpu или conda install pythorch
12. Т.к. количество графических ускорителей ограничено необходимо указывать время жизни задачи или оно будет равно 1 часу по умолчанию после этого ваш Jupyter Notebook завершит свою работу и все процессы остановятся. Необходимо указывать время жизни задачи каждый раз! Все несохраненные данные будут утеряны
13. Запуск Jupyter Notebook с 2-мя любыми GPU, 2 ядрами процессора и временем жизни задачи 5 часов:
~$ sbatch --gres=gpu:2 -c 2 --time 5:0:0 run_notebook
14. Запуск Jupyter Notebook с 2-мя Tesla V100, 2 ядрами процессора и временем жизни задачи 5 часов:
~$ sbatch --gres=gpu:v100:2 -c 2 --time 5:0:0 run_notebook
15. Запуск Jupyter Notebook с 2-мя Tesla A30, 2 ядрами процессора и временем жизни задачи 5 часов:
~$ sbatch --gres=gpu:a30:2 -c 2 --time 5:0:0 run_notebook
16. Запуск Jupyter Notebook с 2-мя Tesla A100, 2 ядрами процессора и временем жизни задачи 5 часов:
~$ sbatch --gres=gpu:a100:2 -c 2 --time 5:0:0 run_notebook
17. Примечание: весь стандартный вывод будет находиться в файле notebook-<номер задачи>.out (в том числе порт для «проброса» на локальную машину и токен).
Пример вывода в файле:
PORT TO USE: 4001
User's jupyter not found. Loading system env. [I 15:13:41.946 NotebookApp] The Jupyter Notebook is running at: [I 15:13:41.946 NotebookApp] http://localhost:4001/?token=bd2a687a42e6073d982254bcb504601b45453764abfe64e5
18. После того, как задача начнет выполняться она получит статус «R» в squeue (список всех задач в очереди), нужно «пробросить» порт на локальную машину, чтобы получить доступ к выполняемому notebook из браузера:
- Для Linux/MacOS: из терминала локального ПК выполните команду:
ssh -p 2222 ВАШ_ЛОГИН@gpu.hpc.susu.ru -L 8080:localhost:<PORT>
где 8080 — локальный порт для доступа в браузере, а <PORT> — тот, что указан в выводе notebook-<номер задачи>.out
Вам будет необходимо два раза ввести ваш пароль
- Для Windows предлагается использовать наиболее популярный ssh-клиент — Putty (в примере на скриншотах использовался порт 1339):
19. Теперь можно зайти в браузере на локальной машине по http://localhost:8080, ввести токен из файла notebook-<jobid>.out и выполнять расчеты.
Убедительная просьба в случае того, если расчёт в Jupyter Notebook был завершен ранее установленного времени нажать кнопку Quit в браузере или остановить свою задачу командой scancel [номер задачи]!!! Тем самым освободив ограниченные ресурсы!
|