Отправьте слишком много команд из разных файлов в одном пакетном задании.Linux

Ответить
Anonymous
 Отправьте слишком много команд из разных файлов в одном пакетном задании.

Сообщение Anonymous »

Я хочу использовать bash для запуска пакетного задания на HPC. Команды, которые необходимо выполнить, сохраняются в текстовый файл. Раньше я использовал следующее для запуска каждой строки текстового файла отдельно как пакетного задания.

Код: Выделить всё

File=Commands.txt
head -n $SLURM_ARRAY_TASK_ID $File | tail -n 1 | bash
Мне нужно расширить этот подход, чтобы найти в определенном каталоге все файлы (и их одноуровневые потомки), которые соответствуют определенному шаблону.

Код: Выделить всё

BaseDir="Folder1/Folder2/Folder3"
FolderPattern="FolderPattern*"
FilePatterns=("FilePattern1_*.txt" "FilePattern2_*.txt")
Должно быть несколько папок-кандидатов, в каждой из которых должен быть хотя бы один файл каждого шаблона. Мне нужно прочитать строки в этих файлах, не сохраняя их в файл. Объединенные команды должны быть распределены максимум на 210 пакетных заданий. Например, если необходимо выполнить 1000 команд, в каждом пакетном задании должно быть ~ 5 команд для последовательного выполнения.
Мне нужно убедиться, что загруженные модули HPC и расположение Python указаны правильно. наследуется во всех запущенных заданиях:

Код: Выделить всё

#!/bin/bash
#SBATCH --account=XXXX
#SBATCH --ntasks=1
#SBATCH --job-name=Process
#SBATCH --output=%x-%A-%a.out
#SBATCH --error=%x-%A-%a.err
#SBATCH --partition=XXX
#SBATCH --time=00:30:00
#SBATCH --cpus-per-task=1
#SBATCH --mem-per-cpu=200G
#SBATCH --gpus-per-node=1
#SBATCH --ntasks-per-node=1
#SBATCH --array=1-210
#SBATCH --export=ALL

# Load required modules
module load tensorflow

# Ensure the virtual environment paths are correctly set as environment variables.
export PATH=TF_Virt_Env/bin:$PATH
export PYTHONPATH=TF_Virt_Env/lib/python3.10/site-packages:$PYTHONPATH

# Activate the Python virtual environment
source TF_Virt_Env/bin/activate
Примеры команд

Код: Выделить всё

/usr/bin/time -v python3 Script.py --arg1 val1 --arg2 val2 --arg3 val3
Можно ли это не разбивать команды на отдельные файлы и отправлять их отдельно.
Заранее спасибо

Подробнее здесь: https://stackoverflow.com/questions/792 ... -batch-job
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Linux»