Software: FEM - Tutorial - Magnetfeld - Kennfelder - Parallelisierung: Unterschied zwischen den Versionen

Aus OptiYummy
Zur Navigation springenZur Suche springen
KKeine Bearbeitungszusammenfassung
K (Typos und Schreibweise korrigiert)
Zeile 3: Zeile 3:


Bisher haben wir für die Durchführung der Rastersuche den '''seriellen Prozess''' gewählt:
Bisher haben wir für die Durchführung der Rastersuche den '''seriellen Prozess''' gewählt:
* Die nächste Modellberechnungen für die Rastersuche wird erst gestartet, wenn die vorherige Modellberechnung beendet ist.
* 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.
* 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.


Zeile 16: Zeile 16:
* Eine Kopie des Scriptes (hier .BAT) wird ebenfalls in jedem Ordner gespeichert und aufgerufen.
* 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.
* Nach Ausführen dieses Scriptes erwartet OptiY die Output-Datei mit den Berechnungsergebnissen im zugehörigen Ordner.
* Die Ordnerstruktur für eine 4x4-Rastersucher (16 Schritte) wird im nebenstehenden Bild gezeigt.  
* 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.
* Für den Ordner "0" sind beispielhaft die enthaltenen Dateien angedeutet.
* "OptiScript4" enthält die Befehle des BAT-Files.
* "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.
* 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'''
'''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.
* 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:
* '''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
  cd /D %~dp0
  F:\Programme\femm42\bin\femm.exe -lua-script=Magnet_xx.LUA
  F:\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:  
* '''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
  cd /D %~dp0
  F:\Programme\femm42\bin\femm.exe -lua-script=..\Magnet_xx.LUA
  F:\Programme\femm42\bin\femm.exe -lua-script=..\Magnet_xx.LUA
Zeile 32: Zeile 32:
  :: Ordner des Batch-Skripts wird zum aktuellen Ordner:
  :: Ordner des Batch-Skripts wird zum aktuellen Ordner:
  cd /D %~dp0
  cd /D %~dp0
  :: Test, ob LUA-Datei im aktuellen Ordner existiert:
  :: Test, ob Lua-Datei im aktuellen Ordner existiert:
  if exist Magnet_xx.LUA goto seriell
  if exist Magnet_xx.LUA goto seriell
  :parallel
  :parallel
Zeile 41: Zeile 41:
  :Ende
  :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.
* 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.
'''3. Zuordnung der Input-/Outputdateien zum LUA-Script'''
'''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).
* 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:  
* 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="";
  mydir="";



Version vom 26. Mai 2014, 14:04 Uhr

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
F:\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
F:\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
F:\Programme\femm42\bin\femm.exe -lua-script=..\Magnet_xx.LUA
goto Ende
:seriell 
F:\Programme\femm42\bin\femm.exe -lua-script=Magnet_xx.LUA
: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.

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 - 64 Bit funktioniert noch eine Rastersuche mit 81 Schritten (9x9).
  • Unter Windows XP - 32 Bit kann man nur das Prinzip der parallelisierten Rastersuche mit 16 Schritten (4x4) testen.
  • Erfahrungen mit Windows 7/8 - 32 Bit liegen noch nicht vor.
  • Ein Überschreiten der möglichen Anzahl führt zu Fehlermeldungen und Abstürzen der "überzähligen" FEMM-Aufrufe, welche man manuell quittieren muss.
  • 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.