Вы здесь

Python-скрипты на кластере

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.

Яндекс.Метрика