Software: FEM - Tutorial - Magnetfeld - Kennfelder - Parallelisierung

Aus OptiYummy
Wechseln zu: Navigation, Suche
Kennfeldberechnung mit parallelisierter Rastersuche

Bisher haben wir für die Durchführung der Rastersuche den seriellen Prozess gewählt:

  • Die nächste Modellberechnung für die Rastersuche wird erst gestartet, wenn die vorherige Modellberechnung beendet ist.
  • Damit kann es zu keinen Ressourcenkonflikten zwischen den einzelnen Modellberechnungen kommen. Deshalb sind auch keine besonderen Maßnahmen zur Vermeidung solcher Konflikte erforderlich. Alle Dateien, welche während einer Modellberechnung nötig sind, können im aktuellen Arbeitsverzeichnis des Experiments verwaltet werden.

Bei der Rastersuche können alle Stützstellen völlig unabhängig voneinander berechnet werden. Deshalb kann nach Wahl von paralleler Prozess der gleichzeitige Start aller erforderlichen Modellberechnungen erfolgen. Dazu sind zuvor jedoch Maßnahmen zur Vermeidung von Ressourcenkonflikten zwischen den Modellberechnungen erforderlich.

Im Folgenden wird eine Lösung für die Parallelisierung der FEMM-Aufrufe im OptiY-Workflow entwickelt, welche auch für den seriellen Prozess funktioniert. Es wird dabei auf die Vermeidung von absoluten Pfadangaben geachtet, damit die Modelle und Prozesse portierbar bleiben.


1. Individuelle Script-Ordner pro Modell-Aufruf:
Software FEM - Tutorial - Magnetfeld - optiy Ordnerstruktur parallel.gif
  • Für jeden einzelnen Script-Aufruf innerhalb des parallelen Prozesses wird vom OptiY im aktuellen Script-Arbeitsverzeichnis ein individueller Script-Ordner angelegt (Ordner-Name = Script-Name + Nummer).
  • In jedem dieser Ordner wird die Input-Datei mit den zum Aufruf gehörenden Modell-Parametern gespeichert.
  • Eine Kopie des Scriptes (hier .BAT) wird ebenfalls in jedem Ordner gespeichert und aufgerufen.
  • Nach Ausführen dieses Scriptes erwartet OptiY die Output-Datei mit den Berechnungsergebnissen im zugehörigen Ordner.
  • Die Ordnerstruktur für eine 4x4-Rastersuche (16 Schritte) wird im nebenstehenden Bild gezeigt.
  • Für den Ordner "0" sind beispielhaft die enthaltenen Dateien angedeutet.
  • "OptiScript4" enthält die Befehle des BAT-Files.
  • Nach erfolgreicher Abarbeitung aller parallel gestarteten Script-Aufrufe werden die generierten Ordner vom OptiY wieder gelöscht.

2. Zuordnung des Lua-Scripts zu den Modell-Aufrufen

  • Das Modell in Form des Lua-Scripts existiert in einem Exemplar nur im Script-Arbeitsverzeichnis. Es wird vom OptiY keine Kopie in den generierten Unterordnern erzeugt.
  • Die serielle Abarbeitung ist relativ einfach, weil man die Lua-Datei aus dem aktuellen Ordner des BAT-Scriptes ohne Angabe eines Pfad-Namens verwenden kann:
cd /D %~dp0
C:\Programme\femm42\bin\femm.exe -lua-script=Magnet_xx.LUA
  • Die parallele Abarbeitung muss die Lua-Datei aus dem übergeordneten Ordner des BAT-Scriptes benutzen. Für jedes BAT-Script wird ja ein individueller Unterordner generiert, der damit zum aktuellen Ordner wird:
cd /D %~dp0
C:\Programme\femm42\bin\femm.exe -lua-script=..\Magnet_xx.LUA
  • Wahlfreie serielle oder parallele Abarbeitung eines Scripts kann man nur durch Testen und Umschalten der Aufruf-Methode gewährleisten:
:: Ordner des Batch-Skripts wird zum aktuellen Ordner:
cd /D %~dp0
:: Test, ob Lua-Datei im aktuellen Ordner existiert:
if exist Magnet_xx.LUA goto seriell
:parallel
C:\Programme\femm42\bin\femm.exe -lua-script=..\Magnet_xx.LUA -windowhide
goto Ende
:seriell 
C:\Programme\femm42\bin\femm.exe -lua-script=Magnet_xx.LUA -windowhide
:Ende
  • Die Möglichkeit der wahlfreien seriellen oder parallelen Abarbeitung sollte man anstreben. Dabei wird man zum Testen des Prozesses immer mit der Realisierung des seriellen Modellaufrufes beginnen. Die erforderlichen Anpassungen an den parallelen Prozess erfolgen dann abschließend.
  • Hinweis: Der FEMM-Parameter -windowhide unterdrückt alle FEMM-Fenster außer die Fortschrittsbalken des FEMM-Solvers. Dies erhöht die Abarbeitungsgeschwindigkeit der parallelen Prozesse sehr stark!

3. Zuordnung der Input-/Outputdateien zum Lua-Script

  • Das Lua-Script benutzt für seine Daten immer den aktuellen Script-Ordner (gewährleistet durch cd-Befehl im BAT-Script).
  • Damit kann im Lua-Script die Angabe eines Absolutpfades entfallen. Die entsprechende mydir-Zuweisung wird dafür durch eine Zeichenkette der Länge 0 ersetzt:
mydir="";


Hinweise:

  • Die Anzahl der gleichzeitig möglichen FEMM-Aufrufe wird überwiegend durch das verwendete Betriebssystem bestimmt.
  • Unter Windows 7/8/10 - 64 Bit funktioniert meist noch eine Rastersuche mit 81 Schritten (9x9). Abhängig von der konkreten System-Konfiguration kann jedoch auch bereits bei 64 Schritten (8x8) Schluss sein!
  • Unter Windows XP - 32 Bit kann man z.B. nur das Prinzip der parallelisierten Rastersuche mit 16 Schritten (4x4) testen.
  • Ein Überschreiten der möglichen Anzahl führt zu Fehlermeldungen und Abstürzen der "überzähligen" FEMM-Aufrufe, welche man manuell quittieren muss. Außerdem hat man dann das Problem der Bereinigung des Arbeitsverzeichnisses von überflüssigen temporären Dateien und Ordner.
  • Geschickt eingesetzt führt die Prozess-Parallelisierung zu eine enormen Steigerung der Berechnungsgeschwindigkeit.
  • Die Grenzen der Parallelisierung unter Windows überwindet man durch Verlagerung der Modellaufrufe in eine Netzwerk-Umgebung.