2016-06-10 3 views
1

Ich möchte Slurm Batches (sbatch) schreiben, um mehrere mpi-Anwendungen zu betreiben. So würde Ich mag, wie diempirun mit slurm: wie man mehrere Prozesse auf einer einzigen CPU laufen lässt

salloc --nodes=1 mpirun -n 6 hostname 

etwas in der Lage sein zu laufen Aber ich bekomme diese Meldung:

Es gibt nicht genügend Plätze vorhanden in dem System der 6 Slots zu erfüllen , die durch angefordert wurden Die Anwendung: Hostname

Entweder weniger Steckplätze für Ihre Anwendung anfordern oder mehr Steckplätze zur Verwendung bereitstellen.

Der Knoten hat tatsächlich 4 CPUs. Ich suche daher nach etwas, das mehr Aufgaben pro CPU erlaubt, aber ich kann die richtige Option nicht finden. Ich weiß, dass mpi alleine mehrere Prozesse ausführen kann, wenn physische Ressourcen fehlen. Ich denke, das Problem ist auf der Slum-Seite. Haben Sie Vorschläge/Kommentare?

Antwort

1

Verwenden Sie srun und geben Sie die Option --overcommit, z. wie folgt aus:

test.job:

#!/bin/bash 
#SBATCH --nodes=1 
#SBATCH --ntasks=6 
#SBATCH --overcommit 

srun hostname 

Run sbatch test.job

Von man srun:

Normalerweise srun wird mehr als ein Prozess nicht pro CPU zuzuweisen. Durch Angabe von --overcommit erlauben Sie explizit mehr als einen Prozess pro CPU.

Hinweis je nach Cluster-Konfiguration dies funktioniert oder nicht auch mit srun mit mpirun, aber ich würde halten können, wenn Sie einen guten Grund, nicht zu haben.

Eine wichtige Warnung: Die meisten MPI-Implementierungen haben standardmäßig schreckliche Leistung wenn in overcommited läuft. Wie man das anspricht, ist eine andere, viel schwierigere Frage.

Verwandte Themen