Ich muss ein Python-Skript oft von einem Python-Skript aus starten. Angenommen, ich habe eine Maschine mit 10 Kernen und muss mein Skript 100 Mal ausführen, sodass ich die Gesamtmenge in 10 Blöcke zu je 10 Ausführungen aufteilen könnte. Ich habe diesen Code:
Code: Select all
import subprocess
chunks = 10
it = 10
for i in range(0,chunks):
procs = []
for j in range(0,it):
proc = subprocess.Popen([program,option1,option2])
procs.append(proc)
[p.wait() for p in procs]
Die Idee ist, dass die interne Schleife die Aufrufe in einem Block startet und dann die externe Schleife auf das Ende aller Prozesse wartet, um den nächsten Block zu starten. Aber beim Testen auf einer Maschine mit mehr als 10 Kernen und einer Ausführungsanzahl von 10 sehe ich, dass alle Kerne funktionieren, sodass mein Code nicht wie erwartet funktioniert. Aber ich kann den Fehler nicht finden. Kann mir bitte jemand helfen?