Ekinox
Blocks

Parallel

Der Parallel-Block ist ein Container-Block in Ekinox, der es ermöglicht, mehrere Instanzen von Blöcken gleichzeitig auszuführen, um Workflows schneller zu verarbeiten.

Der Parallel-Block unterstützt zwei Arten der gleichzeitigen Ausführung:

Parallel-Blöcke sind Container-Knoten, die ihre Inhalte mehrfach gleichzeitig ausführen, im Gegensatz zu Schleifen, die sequentiell ausgeführt werden.

Überblick

Der Parallel-Block ermöglicht es dir:

Arbeit zu verteilen: Mehrere Elemente gleichzeitig zu verarbeiten

Ausführung zu beschleunigen: Unabhängige Operationen gleichzeitig auszuführen

Massenoperationen zu bewältigen: Große Datensätze effizient zu verarbeiten

Ergebnisse zu aggregieren: Ausgaben aus allen parallelen Ausführungen zu sammeln

Konfigurationsoptionen

Parallel-Typ

Wähle zwischen zwei Arten der parallelen Ausführung:

Anzahlbasierte Parallelität - Führe eine feste Anzahl paralleler Instanzen aus:

Anzahlbasierte parallele Ausführung

Verwende dies, wenn du dieselbe Operation mehrmals gleichzeitig ausführen musst.

Example: Run 5 parallel instances
- Instance 1 ┐
- Instance 2 ├─ All execute simultaneously
- Instance 3 │
- Instance 4 │
- Instance 5 ┘

Sammlungsbasierte Parallelität - Verteile eine Sammlung auf parallele Instanzen:

Sammlungsbasierte parallele Ausführung

Jede Instanz verarbeitet gleichzeitig ein Element aus der Sammlung.

Example: Process ["task1", "task2", "task3"] in parallel
- Instance 1: Process "task1" ┐
- Instance 2: Process "task2" ├─ All execute simultaneously
- Instance 3: Process "task3" ┘

Wie man Parallel-Blöcke verwendet

Einen Parallel-Block erstellen

  1. Ziehe einen Parallel-Block aus der Werkzeugleiste auf deine Leinwand
  2. Konfiguriere den Parallel-Typ und die Parameter
  3. Ziehe einen einzelnen Block in den Parallel-Container
  4. Verbinde den Block nach Bedarf

Auf Ergebnisse zugreifen

Nach Abschluss eines parallelen Blocks können Sie auf aggregierte Ergebnisse zugreifen:

  • <parallel.results>: Array mit Ergebnissen aus allen parallelen Instanzen

Beispielanwendungsfälle

Batch-API-Verarbeitung

Szenario: Mehrere API-Aufrufe gleichzeitig verarbeiten

  1. Paralleler Block mit einer Sammlung von API-Endpunkten
  2. Innerhalb des parallelen Blocks: API-Block ruft jeden Endpunkt auf
  3. Nach dem parallelen Block: Alle Antworten gemeinsam verarbeiten

Multi-Modell-KI-Verarbeitung

Szenario: Antworten von mehreren KI-Modellen erhalten

  1. Sammlungsbasierte Parallelverarbeitung über eine Liste von Modell-IDs (z.B. ["gpt-4o", "claude-3.7-sonnet", "gemini-2.5-pro"])
  2. Innerhalb des parallelen Blocks: Das Modell des Agenten wird auf das aktuelle Element aus der Sammlung gesetzt
  3. Nach dem parallelen Block: Vergleichen und Auswählen der besten Antwort

Erweiterte Funktionen

Ergebnisaggregation

Ergebnisse aus allen parallelen Instanzen werden automatisch gesammelt:

// In a Function block after the parallel
const allResults = input.parallel.results;
// Returns: [result1, result2, result3, ...]

Instanzisolierung

Jede parallele Instanz läuft unabhängig:

  • Separate Variablenbereiche
  • Kein gemeinsamer Zustand zwischen Instanzen
  • Fehler in einer Instanz beeinflussen andere nicht

Einschränkungen

Container-Blöcke (Schleifen und Parallele) können nicht ineinander verschachtelt werden. Das bedeutet:

  • Sie können keinen Schleifenblock in einen parallelen Block platzieren
  • Sie können keinen weiteren parallelen Block in einen parallelen Block platzieren
  • Sie können keinen Container-Block in einen anderen Container-Block platzieren

Parallele Blöcke können nur einen einzigen Block enthalten. Sie können nicht mehrere Blöcke haben, die innerhalb eines parallelen Blocks miteinander verbunden sind - in diesem Fall würde nur der erste Block ausgeführt werden.

Obwohl die parallele Ausführung schneller ist, sollten Sie Folgendes beachten:

  • API-Ratenbegrenzungen bei gleichzeitigen Anfragen
  • Speichernutzung bei großen Datensätzen
  • Maximum von 20 gleichzeitigen Instanzen, um Ressourcenerschöpfung zu vermeiden

Parallel vs. Loop

Verstehen, wann was zu verwenden ist:

FunktionParallelLoop
AusführungGleichzeitigSequentiell
GeschwindigkeitSchneller für unabhängige OperationenLangsamer, aber geordnet
ReihenfolgeKeine garantierte ReihenfolgeBehält Reihenfolge bei
AnwendungsfallUnabhängige OperationenAbhängige Operationen
RessourcennutzungHöherNiedriger

Eingaben und Ausgaben

  • Parallel-Typ: Wählen Sie zwischen 'count' oder 'collection'

  • Count: Anzahl der auszuführenden Instanzen (anzahlbasiert)

  • Collection: Array oder Objekt zur Verteilung (sammlungsbasiert)

  • parallel.currentItem: Element für diese Instanz

  • parallel.index: Instanznummer (0-basiert)

  • parallel.items: Vollständige Sammlung (sammlungsbasiert)

  • parallel.results: Array aller Instanzergebnisse

  • Access: Verfügbar in Blöcken nach dem Parallel

Best Practices

  • Nur unabhängige Operationen: Stellen Sie sicher, dass Operationen nicht voneinander abhängen
  • Rate-Limits berücksichtigen: Fügen Sie Verzögerungen oder Drosselungen für API-intensive Workflows hinzu
  • Fehlerbehandlung: Jede Instanz sollte ihre eigenen Fehler angemessen behandeln
Parallel