Отправьте Slurm Jobs, используя Python - PullRequest
0 голосов
/ 20 апреля 2020

У меня есть foo.sh, как показано ниже

#!/bin/bash
#SBATCH -A research
#SBATCH -p long
#SBATCH --mem-per-cpu=1024
#SBATCH -N 1
#SBATCH -n 24
#SBATCH -t 2-00:00:00
#SBATCH --mail-type=END
#SBATCH --exclude=node37

module load Gaussian/09revC

export GAUSS_SCRDIR=/scratch/$USER.$SLURM_JOBID
/bin/mkdir -p $GAUSS_SCRDIR

g09 $1

/bin/rm -rf $GAUSS_SCRDIR

И я вызываю foo.sh из другого bash файла с именем submit.sh

#!/bin/bash
sbatch foo.sh 00_molecule_name_some_method.com
sbatch foo.sh 01_molecule_name_some_method.com
sbatch foo.sh 02_molecule_name_some_method.com

Это отправляет несколько заданий.

Я хочу изменить submit.sh на Python файл, который вызовет foo.sh, предоставив ему аргумент, который go на $1 в foo.sh, Python не должен ждать задания

Также molecule_name и some_method - это переменные, которые я предоставлю для l oop

template Python script submit.py

for molecule_name in molecules:
    for some_method in methods:
        foo.sh molecule_name some_method

Я получаю эту ошибку:

/bin/mkdir: cannot create directory ‘/scratch’: Permission denied
PGFIO/stdio: No such file or directory
PGFIO-F-/OPEN/unit=11/error code returned by host stdio - 2.
File name = /scratch/USERNAME./Gau-41212.inp
In source file ml0.f, at line number 181
PGFIO/stdio: No such file or directory
PGFIO-F-/OPEN/unit=11/error code returned by host stdio - 2.
File name = /scratch/USERNAME./Gau-41213.inp
In source file ml0.f, at line number 181

1 Ответ

0 голосов
/ 20 апреля 2020

Использование Подпроцесс

import subprocess
for molecule_name in molecules:
    for some_method in methods:
        command1 = subprocess.Popen(['foo.sh', molecule_name, some_method])
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...