Sim

Parallel

Der Parallel-Block ist ein Container-Block in Sim, 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