На суперкомпьютере МВС-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