Slurm: Wie man auf Skripte wartet, ohne die Parallelität zu beeinflussenPython

Python-Programme
Guest
 Slurm: Wie man auf Skripte wartet, ohne die Parallelität zu beeinflussen

Post by Guest »

Ich habe ein Problem mit meinem Slurm -Code (ich bin ein ziemlicher Neuling). Task2, ..., Task28, mit Jobs parallel. Python -Funktionen werden nacheinander aufgerufen (nennen wir sie Py1.py, Py2.py, Py3.py, Py4.Py). py1.py muss abgeschlossen sein, bevor mit py2.py und so weiter gestartet wird.
In der Zwischenzeit möchte ich keine anderen Aufgaben. Bei der gleichen Aufgabe müssen Sie jedoch unabhängig voneinander parallel arbeiten. Ich habe gesehen, dass es ungefähr 100%ist, anders als ich erwartet hatte (28 Srun parallel lief ich 2800%)
im Folgenden, was ich zu tun versuchte: < BR /> Hier der Slurm -Code < /p>

Code: Select all

`#!/bin/bash

#SBATCH --nodes=1
#SBATCH --ntasks=28
#SBATCH --ntasks-per-node=28
#SBATCH --mem=4000 # Memory per node (in MB).

while read data
do
srun -n 1 --nodes=1 --exclusive dosomething.sh $data &
done
wait

`
< /code>
Hier das Domsomething.sh < /p>
`python3 py1.py
python3 py2.py
python3 py3.py
python3 py4.py`
Es kommt vor, dass die .py -Funktionen aus einigen Gründen, die ich nicht verstehe, die Fertigstellung der vorherigen nicht warten (ich habe Fehlermeldung in Protokoll erhalten).
Dann habe ich es versucht < /p>
`python3 py1.py
pid1=$!
wait $pid1
python3 py2.py
pid2=$!
wait $pid2
python3 py3.py
pid3=$!
wait $pid3
python3 py4.py`
< /code>
Erwarten Sie, dass die Aufgabe nur auf den spezifischen Vorgang abgeschlossen wird. Dies blockiert jedoch die parallele Ausführung von 28 Aufgaben pro Knoten. < /p>
Was ich bin falsch machen?

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post