1. Структура python-скрипта
Здесь предполагается, что python-скрипт - это текст программы, написанной на языке, понимаемом интерпретатором python соответствующей версии, и начинающейся со строки следующего вида с заменой 'N.N' на номер версии (например, на 3 или на 3.9).
#!/usr/bin/env pythonN.N
В этом случае имя python-скрипта может быть непосредственно передано команде sbatch
в качестве имени исполняемого файла для постановки задачи на выполнение на вычислительных узлах кластера. После первой строки могут быть добавлены строки вида #SBATCH ...
с заказом требуемых задаче ресурсов (см. man sbatch
).
2. Каталог ~/.local
При использовании python надо понимать, что на вычислительных узлах разрешено писать лишь в подкаталоги каталогов ~/_scratch
и ~/_scratch2
, а некоторые модули python используют каталог ~/.local
для записи временных подкаталогов и файлов. Значит, перед использованием python (в частности, до установки своих модулей) следует убедиться, что каталог ~/.local
- это ссылка на ~/_scratch/.local
, выполнив команду ls -l ~/.local
. Если это не так, то нужно переместить каталог ~/.local
в одну из указанных папок, выполнив, например, команды
mv ~/.local ~/_scratch/
ln -s ~/_scratch ~/.local
3. Установка новых модулей к имеющимся версиям python
На кластере "Уран" установлено несколько версий python. В силу того, что некоторые модули системы python требуют настройки на конкретные версии системного ПО кластера, установка необходимых дополнительных модулей python осуществляется самим пользователем в зависимости от потребностей запускаемых им программ.
При использовании менеджера пакетов pip (см. man pip
) для установки недостающих пакетов следует указывать опцию --user
, чтобы дополнительные пакеты устанавливались в специальный каталог конкретного пользователя и не влияли на работу других пользователей, и, вызывать версию pip, соответствующую используемой версии python.
Пример:
pip3.9 install --user mpi4py
4. Работа с именованными виртуальными средами выполнения (virtual environment)
Создание виртуальных сред выполнения (комплектов пакетов) и переключение на работу с ними рекомендуется осуществлять через менеджеры пакетов conda или mamba, а также с помощью специальных скриптов, обеспечивающих такую настройку.
Так команда
source /opt/intelpython39/bin/activate
переключает на работу с относительно свежей версией python3.9 с установленными дополнительно библиотеками pandas
, jupyter
, scikit-image
, h5py
, pillow
, networkx
, protobuf
и opencv
. Для работы программ, использующих видеокарты для машинного обучения, в этой версии python также установлены pytorch
, tensorflow
, keras
, которые собраны на базе cuda 11.8
. Кроме того, будет доступен менеджер пакетов mamba.