Ein paar Fragen zu Best Practices mit ipyparallel. Ich versuche es zu verwenden, um ein Monte-Carlo-Framework für ein Modell zu implementieren, das ~ 15 zum Ausführen benötigt. Die Idee besteht darin, N-Engines (über SLURM) auszuführen und einen "Master" -Prozess zu haben, der alle benötigten Tasks asynchron abfängt und busy-wartet auf den Abschluss, wobei eine sqlite db mit dem Status jedes Laufs aktualisiert wird.Benachrichtigung, wenn eine neue Aufgabe in ipython parallel gestartet wird
Ich würde gerne wissen, wenn eine Aufgabe einer Engine zugewiesen wurde, so dass ich ihren Status in meiner Datenbank verfolgen kann. Ich versuchte, die AsyncResult-Instanzen zu verwenden, um die msg_id abzurufen und die Task-Datenbank abzufragen, aber das "gestartete" Feld wird nicht aktualisiert, bis die Task abgeschlossen ist.
Es scheint, es sollte eine Möglichkeit geben, diese Benachrichtigung zu erhalten, oder zumindest den Hub abzufragen, während die Engine arbeitet.
Muss ich auch etwas unternehmen, um den Heartbeat-Timeout des Motors während einer lang andauernden Aufgabe zu vermeiden? Ist das der Zweck von client.spin_thread()?
Danke!