Zum Inhalt springen

Konkurrenz

Konkurrenz ist ein leistungsstarkes Feature deines Action Graphs, das es Nodes ermoeglicht, gleichzeitig ausgefuehrt zu werden, wodurch die Performance und Ausfuehrungszeiten verbessert werden.

Mehrere Nodes ermoeglichen die konkurrente Ausfuehrung nachfolgender Nodes, wie Concurrent For Loop, Concurrent For Each Loop, Concurrent Execution und andere. Zusammengefasst helfen diese Nodes deinem Action Graph, deutlich schneller zu laufen.

Wenn Nodes parallel ausgefuehrt werden, nutzen sie die Ressourcen deines Systems, um die Performance zu maximieren. Selbst wenn du mehrere Millionen Nodes gleichzeitig ausfuehrst, kann die Runtime sie effizient verarbeiten, indem sie die Arbeitslast auf mehrere CPU-Kerne verteilt.

Im folgenden Beispiel haben wir einen Concurrent Execution-Node, der zwei File Write-Nodes parallel ausfuehrt.

Im folgenden Beispiel fuehrt der Concurrent Execution-Node zwei Nodes parallel aus. Einer der Nodes greift auf den Output des anderen zu. Diese Verbindung ist problematisch, da der Output des ersten Nodes moeglicherweise noch nicht verfuegbar ist. Das wird letztendlich einen Runtime-Fehler verursachen. In zukuenftigen Versionen werden solche Verbindungen nicht mehr erstellt werden koennen.

Es gibt einige Einschraenkungen bezueglich der Konkurrenz zu beachten. Obwohl die Runtime darauf ausgelegt ist, eine sehr grosse Anzahl von Aufgaben parallel zu verarbeiten, unterliegt die Ausfuehrung dennoch den System- und Betriebssystem-Beschraenkungen. Das Starten einer grossen Anzahl externer Prozesse oder das Initiieren von Tausenden von Netzwerkanfragen kann zu schlechter Performance oder sogar Runtime-Fehlern fuehren.