Ранее я распараллелил скрипт с помощью async с многопроцессорными пулами, но теперь у меня есть доступ к кластеру SLURM, и я хотел бы запустить его с помощью SLURM.
Каков самый простой способ добиться этого?
Все файлы хранится в том же каталоге, и там нет определенного порядка, в котором их необходимо обрабатывать.
РЕДАКТИРОВАТЬ: мне также нужно активировать среду conda перед запуском скрипта Python. Python должен принять имя файла и начать выполнение кода. Обычно я отправляю имя файла через args.
Спасибо
******** Обновление EDIT:
Мне удалось заставить это работать.
Сначала я создал bash-скрипт для отправки заданий:
Код: Выделить всё
#!/bin/bash
# Define the directory containing FITS files
INPUT_DIR="input_dir"
LOG_DIR="${INPUT_DIR}/logs"
# Ensure the logs directory exists
mkdir -p "$LOG_DIR"
# List all FITS files and write their paths to a temporary file
find "$INPUT_DIR" -name "*.fits" > file_list.txt
# Loop through each FITS file and submit a SLURM job
while IFS= read -r filepath; do
sbatch run2.sh "$filepath"
done < file_list.txt
Код: Выделить всё
#!/bin/bash
#SBATCH -p long
#SBATCH -J test
#SBATCH -n 1
#SBATCH -t 00:05:00
#SBATCH --output=file.out
#SBATCH --error=file.err
source miniconda3/bin/activate my_env
# Define variables
# EVENT_PATH="directory_path"
# Run Python script
python3 -u my_python_code.py "$1" "False" 3
Может быть, есть более разумный вариант способ сделать это.
Подробнее здесь: https://stackoverflow.com/questions/792 ... iple-files
Мобильная версия