Guten Tag,
ich nutze aktuell Matlab um Berechnungen mit dem Simulationstool FEMM durchzuführen. Die Kommunikation zwischen Matlab und FEMM erfolgt dabei über die OctaveFEMM-Toolbox.
Um die Berechnungen zu beschleunigen, startet ein Skript eine Funktion simulate() mit Hilfe der batch-Funktion mehrmals auf einem Cluster. Diese Funktion startet jeweils eine FEMM-Instanz und beendet diese auch wieder um anschließend die Ergebnisse an das Skript zurück zu geben.
Mein Problem: Scheitert eine der Simulationen, so sollen auch die anderen Jobs am Cluster beendet werden. Dazu müssen aber auch die FEMM-Instanzen geschlossen werden (dies passiert mit dem Befehl closefemm()). Allerdings fehlt mir die Idee, wie das Haupt-Skript den Jobs am Cluster dies "befehlen" könnte? Zuerst dachte ich daran, dies mit der onCleanup-Funktion zu realisieren. Allerdings wird die Cleanup-Funktion beim beenden eines batch-Prozesses nicht ausgeführt (vermutlich weil ja die zugehörige Matlab-Instanz ebenfalls geschlossen wird).
Hat hier jemand einen Tipp für mich parat? Wie könnte man die einzelnen Jobs sauber abbrechen?
Danke im Vorhinein
mfg Stephan
↧