Multihybrid Berechnung

Aus Dokumentation
Wechseln zu:Navigation, Suche

Mehrprozessorsysteme für beschleunigung der Berechnung

Hybrid 01.png

Die Nutzung aller Prozessoren eines Mehrprozessorsystems zur hydrodynamischen Netzberechnung ist in DYNA seit Bestehen des Programms möglich, da dies bereits ein Hauptkriterium bei der Entwicklung war. Ohne weitere Angabe ermittelt DYNA selbst die Anzahl der Prozessoren und erzeugt die entsprechende Anzahl „Threads“, oder der Anwender bestimmt die Anzahl um sich Prozessorleistung für andere Anwendungen frei zu halten. Selbst während der Berechnung ist es über den „Windows Taskmanager“ noch möglich einzugreifen und dem laufenden DYNA Prozess Prozessoren zu entziehen und wieder zuzuschalten. Diese Art der Beschleunigung wird wie oben beschrieben von DYNA automatisch oder manuell konfigurierbar ausgenutzt. Sie unterliegt allerdings den Beschränkungen der Hardware. Die gängigen Mehrprozessorsysteme sind auf 8 bis 96 (mit Hyperthreading) Prozessoren beschränkt. Ein weiterer Ausbau ist mit modernen CPUs möglich, bringt aber keinen signifikanten Leistungszuwachs mit sich. Anders sieht dies bei der Nutzung von freien Netzwerkressourcen (autonome Rechner) aus. Hier ist eine na- hezu beliebige Beschleunigung der Berechnung möglich.


Lokale Multihybridberechnung

Es besteht die Möglichkeit das Potential des lokalen Rechner durch die mulithybride Berechnung voll auszuschöpfen. Hierfür können Sie, falls Sie mehrere Regenereignisse Rechnen, auch mehrere Prozesse am lokalen Rechner parallel laufen lassen. Dies geht mit einer großen Zeiterstparnis einher, wenn Sie mehrere Regenereignisse berechnen müssen.

Hierfür können Sie die Einstellungen unter dem Reiter "Allgemein" der jeweiligen Hydraulikvariante festlegen.

Hybrid 04.png

Mit Klick auf den Button Thread - Prozessoptionen(multihybride Berechnung)... Öffnet sich der folgende Dialog mit den Einstellungsmöglichkeiten.

Hybrid 06.png

Mit der Anzahl der Threads legen Sie auch die DYNA-Prozesse fest: Bei einem Leistungsstarken Rechner mit 48 logischen Prozessoren, kann bei einer Threadzahl von 8 insgesamt 6 Prozesse parallel berechnet werden.

Hybrid 08.png

Verteilte Berechnung/Remoteberechnung

Hybrid 02.png

Als nächsten Schritt können jetzt weitere Rechner im Netzwerk für die Berechnung herangezogen werden. Oftmals sind sehr leistungsstarke Server oder der Arbeitsplatz eines Mitarbeiters nach Feierabend nicht ausgelastet. Diese Rechner können nun, zentral von einem ++SYSTEMS Arbeitsplatz aus gesteuert, in die Berechnung eingebunden werden. So kann die Anzahl der Nutzbaren Recheneinheiten (CPUs) beliebig erhöht werden.

Vorgehen

Im weiteren Verlauf wird der Rechner auf dem ++SYSTEMS gestartet ist und der somit als zentrales Bindeglied der Berechnung gilt, als Client bezeichnet werden. Die Rechner die vom Client mit der Berechnung des Kanalnetzes beauftragt werden, sollen als Server bezeichnet werden. Alle am Berechnungsvorgang beteiligten PCs (Client und Server) müssen durch ein Netzwerk miteinander verbunden sein.

Voraussetzung für den CLient und das ++SYSTEMS Projekt

Auf dem Client System muss eine ordnungsgemäße Installation von ++SYSTEMS vorhanden sein. Das Projekt muss auf einem Netzlaufwerk gespeichert werden. Über das Netzlaufwerk erfolgt der Großteil des Datenaus tausches zwischen Client und Server. Die Verteilung des Rechenaufwands erfolgt über verschiedene Hydraulikvarianten. Sind diese nicht vorhanden (z.B. Langzeitsimulation mit einer Hydraulikvariante) ist diese in geeigneter Weise über die Regen aufzuteilen. Um die Ressourcen im Netzwerk optimal auszunutzen sollten gleich viele (oder mehr) Hydraulikvarianten wie Rechensysteme vorhanden sein.

Voraussetzungen für Server

Der Server muss in der Lage sein DYNA ordnungsgemäß auszuführen. Dafür ist ein separater Dongle oder ein Netzwerkdongle nötig, sowie Zugriff auf die zur Ausführung benötigten DYNA-Programmdateien. Zusätzlich muss auf jedem Serversystem das Zusatzprogramm „RemoteDynaCallServer.exe“ (befindet sich nach der ++SYSTEMS Installation im Ordner „/Programme (x86)/++SYSTEMS/bin“) gestartet werden. Das Programm setzt die Steueranweisungen des Client um. Auf den Serversystemen kann, muss aber nicht zwangsläufig ein Server-Betriebssystem installiert sein. Es können auch Windows 2000/XP/7/8 Systeme verwendet werden. Der Benutzer muss über ausreichend (am besten Administratorrechte) Rechte verfügen um DYNA und den RemoteDynaCallServer auszuführen und weiterhin vollen Schreib-/Lese-Zugriff auf das Netzlaufwerk haben auf dem das ++SYSTEMS Projekt gespeichert wurde.

Start der Verteilten Berechnung

Vorgehensweise (virtuelle) Server

Diese Schritte müssen für jedes Serversystem einzeln wiederholt werden.

  • Starten Sie das Serversystem
  • Sie benötigen direkten Zugang auf das Serversystem. Dies kann bei einem Serverbetriebssystem

durch eine Terminaldienst Konsole geschehen oder muss über einen lokalen Zugriff geschehen.

  • Stellen Sie sicher, dass Sie die nötigen Berechtigungen haben, um auf das verwendete Netzlaufwerk lesend bzw. schreibend zuzugreifen.
  • DYNA muss ausführbar sein, muss aber nicht gestartet werden.
  • Der DynaCallServer muss gestartet werden. Falls die Datei „DynaCallServer.exe“ auf dem System noch nicht vorhanden ist muss diese zuerst noch für das System zugänglich (lokal oder über Netzlaufwerk) gemacht werden. Eine Konsole zeigt die Einsatzfähigkeit des RemoteDynaCallServers an.

Diese Schritte müssen nur einmalig nach dem Neustart des Serversystems durchgeführt werden. Der Start des DynaCallServers kann auch über den Autostart vorgenommen werden. Der Benutzer, der auf dem Client die Berechnung initiiert, muss nicht mit dem Benutzer auf dem Serversystem übereinstimmen.

Vorgehensweise Client

Es wird davon ausgegangen, dass Sie bereits ein rechenbares ++SYSTEMS Projekt erstellt haben. Dieses soll nun auf mehreren Rechnern (Servern) parallel berechnet werden. Alle Einstellungen bezüglich der Hybdriden Berechnung und Remoteberechnung können Sie in der jeweiligen zu berechnenden Hydraulikvariante festlegen. Hierfür einfach auf dem ersten Reiter "Allgemein" die Einstellungen festlegen und wie gewohnt die Berechnung startet.

Hybrid 04.png


  • Speichern des Projekts auf einem Netzlaufwerk bzw. direkt unter einem Netzwerkpfad. Das verteilte Rechnen kann nur durchgeführt werden, wenn alle Server und der Client uneingeschränkten Zugang zum Projektverzeichnis haben. Zu bewerkstelligen ist dies, indem das Projekt vom Client auf einem zuvor verbundenen Netzlaufwerk abgespeichert wird (Achtung! Auch wenn das Netzlaufwerk lokal auf dem Client PC liegt, muss es auf dem Client PC explizit als Netzlaufwerk verbunden werden und das Projekt muss auf dem explizit verbundenen Netzlaufwerk abgelegt werden. Nur so kann das System die benötigten Pfadinstruktionen ermitteln). Eine weitere Möglichkeit besteht darin, das Projekt direkt in einem über die Netzwerkumgebung zugänglichen Ordner zu speichern. Gehen Sie dafür auf die Netzwerkumgebung -> Gesamtes Netzwerk -> Microsoft Windows-Netzwerk. Wählen Sie nun einen verfügbaren PC aus und Speichern Sie das Projekt in einem von diesem freigegebenen Ordner. In diesem Fall sollte der Speicherpfad des ++SYSTEMS Projekts (in ++SYSTEMS in der obersten blauen Leiste zu ersehen) folgende Form aufweisen:\\Rechnername\Projektpfad\Projektname.kpp
  • Für die Aufteilung der einzelnen Regen auf die verschiedenen Rechner sorgt ++SYSTEMS selbst. Hauptkriterium hierbei ist die Regendauer und die vom Benutzer einzugebende relative Leistungsfähigkeit des jeweils beanspruchten Rechners. Die Regentrennzeit beim Einlesen der Regen aus den verschiedenen Formaten sollte größer als die maximale Netzentleerungszeit sein. Dadurch kann zu beginn jeder Hydraulikvariante von einem komplett entleerten Netz (Regenwasserkanal) bzw. einem Netz im Trockenwetterzustand (Mischwassersystem) ausgegangen werden. Faustregel für die Bestimmung der Trennzeit(Weitere Informationen zur Laufzeitkontrolle in DYNA Zeitlicher Ablauf DYNA)Die 1,5-2-fache Burn-In-Zeit bzw. Fließzeit, ausgewiesen im Transport-Aktenreiter der Berechnungsvariante nach einmaliger Berechnung (z.B. eines Bemessungsregens) ist i.d.Regel groß genug.
  • Der Hydraulikvariante, die berechnet werden soll, kann nun eine Reihe von Servern zugeordnet werden, auf denen die Berechnung durchgeführt wird.
Hybrid 05.png

Diese Zuordnung erfolgt im Hydraulikvariantendialog im Reiter „Allgemeines“. Am unteren Ende des Dialogfensters sind die Remoteparameter anzugeben. Um die Variante auf einen anderen Rechner (Server) auszuführen, muss der Haken bei „Nutze Remote Berechnung:“ gesetzt werden. Ist der Haken nicht gesetzt, so wird die Variante auf dem lokalen System (Client) ausgeführt. Es ist auch möglich einen oder einen Teil der Varianten lokal auszuführen und gleichzeitig andere Varianten über Remote auf einem Server auszuführen. Als nächstes muss der Servername angegeben werden. Zur Identifizierung werden die Netzwerknamen benutzt. ++SYSTEMS analysiert beim Setzen des Remote Hakens automatisch Ihr Netzwerk und gibt Ihnen unter „Remote-Rechner“ eine Auswahl an allen zur Verfügung stehenden Servern. Dieses Feld muss belegt werden. Im letzten Feld ist anzugeben, unter welchem Pfad die Datei „dyna.exe“ auf einem der Server Systeme zu finden ist. (Hier sei zu beachten, dass der Pfad auf dem Server Gültigkeit besitzen muss, nicht auf dem Client.)


Es gibt zwei Möglichkeiten der (verteilten) Berechnung mit einem bzw. mehreren Prozessen je Computer. Letztere Möglichkeit trägt der Tatsache Rechnung, dass bei neueren Rechnerarchitekturen „Processing“ präferiert wird gegenüber „Threading“. Hier wurde den neueren Virtualisierungsmöglichkeiten moderner Rechnerarchitekturen Tribut gezollt. Das bedeutet beispielsweise, dass hier ein DYNA Aufruf mit n-1 Threads einen schnelleren Ablauf zur Folge hat als mit n Threads, wenn n sich der Maximalzahl der möglichen Kerne eines Rechners nähert. Hier wurde die Anzahl der Threads n = 8 gewählt, da nach unserer Erfahrung der Schritt von n=7 nach n=8 immer einen Performancegewinn zur Folge hat. Im Taskmanager können Sie sehen, über wie viele Prozessorkerne ein (virtueller) Server oder Workstation verfügt:

Testen der Konfiguration

Vor der Rechnung kl

Hybrid 07.png


Hybrid 08.png

In diesem Fall sind es m=24. So entstehen 3=m/8 Prozesse mit je 8 Kernen. Bei älteren Rechnerarchitekturen sorgt das ++SYSTEMS dafür, dass aber nicht mehr als 2 Prozesse entstehen. Dies tragt auch der Tatsache Rechnung, dass zumeist 2 physikalische Prozessoren mit jeweils eigenem zugeordnetem Speicher vorhanden sind. Es gibt noch einen Prozentsatz-Parameter, mit dem auch eine Überbelegung der CPU-Kerne stattfinden kann, so dass die schnellsten Prozesse zwar etwas langsamer laufen, aber die langsamsten dafür etwas schneller. Wie Sie sehen spielt auch die Bewertung der Leistungsfähigkeit eine große Rolle. In diesem Beispiel gibt es zwei der moderneren Architekturen (XEON E5...), dann mit 5 bzw 8 bewertet wurden, während die herkömmlichen Rechnerarchitekturen (Xeon X55xx,X56xx) mit 2 bzw. 1 bewertet sind. Ein weiterer wichtiger Konfigurationsparameter für Fall 1 (nur 1 Prozess pro Rechner) ist die „Anzahl Threads für DYNA“. Hier geben Sie an wie viele (virtuelle) Prozessoren Sie auf dem Serversystem haben bzw. voll ausnützen wollen. Falls in den Feldern „Anzahl Threads für DYNA“ und „DYNA Pfad:“ nichts angegeben wurde, so wer-den automatisch die allgemeinen Einstellungen im Konfigurationsmenü für die DYNA-Berechnung verwendet.

  • Allgemeine Berechnungseinstellungen für die DYNA-Berechnung: Die Auswahlen für „Dateien kommentieren“ und „DNSCREEN verwenden“ sind wie bei lokalen Berechnungen anzuwenden. Der „Programmpfad für DYNA“ ist nur für die Hydraulikvarianten relevant, die keinen „DYNA Pfad“ angegeben haben. Hiermit haben Sie die Möglichkeit, die Datei „dyna.exe“ genauso wie die ++SYSTEMS Projektdatei auf einem Netzlaufwerk abzulegen und somit allen Netzwerkressourcen zugänglich zu machen. Für den Parameter „Anzahl Threads für DYNA“ gilt, wenn die Hydraulikvariante unter „Anzahl Threads für DYNA“ keinen Eintrag hat, so wird dieser hier verwendet. Ist auch hier kein Eintrag vorhanden (zu empfehlen), so wird vor der Ausführung von DYNA automatisch die Anzahl der Prozessoren auf dem jeweiligen System ermittelt und eine 100%-ige Auslastung angestrebt, was allerdings aufgrund des oben geschilderten Paradigmenwechsels für neuere Rechnerarchitekturen zu keinen Performacegewinnen mehr führt.



Berechnung starten: Klicken Sie mit der rechten Maustaste auf „Hydraulikvarianten“ und wählen Sie den Menüpunkt „Varianten berechnen…“ aus. Der untenstehende Dialog wird angezeigt.

Im linken Auswahlfenster sehen Sie alle im Projekt vorhandenen Hydraulikvarianten. Mit einem Dop-pelklick oder alternativ mit dem „>>“ Button können diese in das rechte Auswahlfeld übernommen werden. Die Varianten im rechten Auswahlfeld werden bei der Berechnung berücksichtigt. Wichtig ist auch, dass der Haken bei „paral¬lel“ gesetzt ist, da die Varianten andernfalls sequentiell abgearbeitet werden. Wenn Sie die Auswahl mit „OK“ bestätigen, so wird die Berechnung gestartet.

Bevor die eigentliche Berechnung mit DYNA erfolgen kann, müssen die DYNA Eingabedateien ge-schrieben werden. Dies erfolgt sequentiell für alle ausgewählten Hydraulikvarianten. Zudem wird der angegebene Speicherpfad der DYNA Arbeitsordner (falls nicht schon in dieser Form angegeben) in einen UNC-Pfad umgewandelt. Dies hat den Vorteil, dass der Projektordner nicht explizit auf den Servern verbunden sein muss. Über diesen UNC-Pfad kann jeder Rechner im Netzwerk (soweit die entsprechenden Rechte vorhanden sind) auf den DYNA Arbeitsordner zugreifen.

Nachdem die Eingabedateien geschrieben wurden, werden die DYNA-Berechnungen gleichzeitig auf allen angegebenen Servern gestartet. Für jede einzelne Hydraulikvariante wird ein DnScreen Fens-ter geöffnet, in dem der Berechnungsfortschritt nach verfolgt werden kann.

Ist die Berechung einer Hydraulikvariante beendet, so werden die Ergebnisdaten automatisch von ++SYSTEMS eingelesen. Signifikant für die erfolgreiche Ausführung der Berechnung ist die Zeile „Variantenname: Berechnung erfolgreich abgeschlossen“.

Die verteilte Berechnung ist abgeschlossen, wenn jede der gestarteten Hydraulikvarianten im Mel-dungsfenster als „erfolgreich abgeschlossen“ aufgelistet wurde.


Fehlermeldungen & Problembehandlung

  • Falscher Name des Remote PC oder DynaCallServer nicht gestartet oder erreichbar

Folgende Fehlermeldung erscheint, wenn bei „Name des Remote PC“ ein ungültiger Netzwerkname eingegeben wurde oder auf dem angegebenen Server der RemoteDynaCallServer nicht gestartet wurde. „Exception at DYNA call. Calculation canceled! Überprüfen Sie bitte den in der Hydraulikvariante eingetragenen Namen für den Remote Rechner. Wählen Sie am besten einen der Vorgegebenen Rechnernamen aus. Hierbei handelt es sich immer um gültige Netzwerknamen. Als nächstes sollten Sie überprüfen, ob der DynaCallServer auf dem Server gestartet ist (sie¬he „Vorgehensweise Server“). Falls auch dies nicht zum Erfolg führt, sollten Sie Ihre Firewall-Einstellungen überprüfen. Dort muss die Kommunikation via RPC (Remote Procedure Call) freigegeben sein. Überprüfen Sie ob Sie die nötigen Rechte auf dem Serverrechner haben.

  • Dyna konnte auf dem Serversystem nicht ausgeführt werden

Im Meldungsfenster wird angezeigt, dass die Ausgabedatei nicht geöffnet werden konnte. Überprü-fen Sie im Fenster des DynaCallServers die übergebenen Parameter.

Der DYNA-Pfad und der Variantenordner müssen auf dem Serversystem gültig sein. D.h. unter dem angegebenen Pfad muss DYNA gestartet werden können und der Variantenordner muss für den Server zugängliche (Schreiben und Lesen) sein.