На суперкомпьютере МВС-10П ОП установлен python2 и python3. Чтобы пользоваться питоном в первую очередь необходимо настроить «виртуальное окружение» (https://python-scripts.com/virtualenv). Каждое виртуальное окружение представляет собой директорию, в которой содержится копия питона с дополнительными пакетами, настроенными под конкретную задачу. Желательно под каждую задачу, решаемую на питоне, создавать независимое виртуальное окружение, так как разные проекты могут иметь разные наборы зависимостей, которые могут конфликтовать друг с другом.
Например, на python3 виртуальную среду с названием test_env_p3 можно создать командой
python3 -m venv test_env_p3
В результате возникнет директория test_env_p3.
Чтобы активировать эту виртуальную среду, необходимо набрать команду:
source test_env_p3/bin/activate
Теперь можно работать с питоном и подгружать необходимые приложения. Например, если необходимо установить пакет numpy, достаточно набрать команду
pip install numpy
Вызов питона осуществляется стандартной программой python.
Например, запуск программы my_python_prog.py, содержащей одну строчку кода: import math ; print(math.ceil(77/21)) можно осуществить командой
python my_python_prog.py
То же самое можно сделать из командной строки:
python -c “import math ; print(math.ceil(77/21))”
Такая форма запуска программ на питоне загружает управляющую машину. Поэтому сложные программы на питоне необходимо загружать на рабочих станциях суперкомпьютера. Для этого, например, можно определить текстовый файл runpython.sh с текстом:
#!/bin/bash
python myprog.py
Надо установить приоритет, позволяющий запуск скрипта runpython.sh, командой chmod, например, так: chmod 755 runpython.sh
Тогда можно запустить питоновскую программы на разделе broadwell кластера, например, так:
mpirun -np 1 -maxtime 10 -s broadwell runpython.sh
Все тоже самое относится к созданию виртуального окружения для приложений на втором питоне. Единственное отличие, команда создания виртуальной среды несколько иная (https://python-scripts.com/virtualenv):
virtualenv test_env_p2
Это команда создает директорию test_env_p2, где будут находится файлы виртуальной среды test_env_p2.
Для работы с виртуальными окружениями питона удобно использовать команду freeze. Она позволяет записать все параметры виртуальной среды в текстовый файл, с помощью которого можно на любом другом компьютере в точности воссоздать виртуальную среду со всеми установленными в ней приложениями. Эта команда работает так:
pip freeze > my_env_info.txt
На другом компьютере, можно создать идентичную по составу пакетов виртуальную среду, назвав ее любым именем. Тогда после создания и активации этой среды, команда
pip install -r my_env_info.txt
автоматически загрузит в виртуальную среду пакеты, перечисленные в my_env_info.txt (при этом версии пакетов учитываются).
Примеры использования:
Для установки boltztrap2 на python3 необходимо провести следующие действия:
В директории, где храняться все питоновские виртуальные среды,
выполнением следующие команды:
python3 -m venv boltztr2-env
source boltztr2-env/bin/activate
pip install –upgrade pip
pip install numpy
pip install wheel pytest
pip install BoltzTraP2
Вот ещё пример непосредственно для mvs10q:
Загружаем нужные модули для mvs10q:
module purge
module load compiler/latest
module load mpi/latest
module load python/3.8
module load suppz
Переходим в нужный каталог и создаём среду:
cd $HOME/mvs10q/test
python3 -m venv arda
Активируем среду и дополняем библиотеки:
python3 -m venv arda
pip install numpy
pip install torch
Создаём скрипт и программу на питоне:
vi test.sh
#!/bin/bash
source arda/bin/activate
python test.py
vi test.py
import math ; print(math.ceil(77/21))
import numpy
import torch
и запускаем (точнее, ставим задачу в очередь):
mpirun -s broadwell -n 1 -maxtime 10 ./test.sh
По вопросам работы python можно обратиться к администратору vasp_admin@jscc.ru