Как передать мой скрипт Python в Slurm sbatch?

Я написал сценарий Python, который я должен передать в пакетную систему Slurm моего университета для вычислений. Я написал короткий сценарий оболочки, который должен просто ввести сценарий python в систему sbatch, но я получаю сообщение об ошибке:

python: невозможно открыть файл 'retrieve.py': [Errno 2] Нет такого файла или каталога

Я не уверен, что с этим делать, даже после того, как много прочитал о системе в Интернете. Сценарий python и сценарий оболочки находятся в той же папке, и мой сценарий оболочки пока говорит только следующее:

#!/bin/bash

python retrieve.py

Я намерен добавить больше необходимой информации в файл сценария, как только я узнаю, что он работает, поэтому я просто надеялся на некоторую помощь в решении этой проблемы на данный момент. Спасибо!


person Marcus K.    schedule 08.03.2021    source источник


Ответы (1)


Я предполагаю, что вы находитесь не в том каталоге. Без дополнительных параметров задания Slurm используют каталог, из которого вы отправили задание, в качестве рабочего каталога. Так что, если вы отправили из другой папки, это может быть проблемой.

Чтобы начать отладку, вы можете вставить ls в свой рабочий скрипт (перед вызовом python) или сделать echo $PWD, чтобы убедиться, что вы находитесь в правильном каталоге.

Или даже получить рабочий каталог вашей работы с sacct -j <JOBID> -o workdir (добавьте -p, если путь слишком длинный и обрезается).

person Marcus Boden    schedule 09.03.2021
comment
Также убедитесь, что вы запускаете свой код из общей файловой системы, доступной на всех вычислительных узлах (что должно быть в случае любой «домашней» файловой системы, но может быть не в случае «временной» файловой системы) - person damienfrancois; 09.03.2021