/pattern/parallelization/

02 · WorkflowSectioned ParallelismEnsemble VotingFan-outDivide and Process

Parallelization.
Arbeit aufteilen. Parallel ausführen. Ergebnisse zusammenführen.

Unabhängige Teilaufgaben werden parallel verarbeitet und entweder zusammengeführt (Sectioning) oder das beste Ergebnis wird über einen Aggregator ausgewählt (Voting).

Wann man dazu greift

  • Die Eingabe natürlich segmentierbar ist und Aufgaben unabhängig sind, um Latenz zu reduzieren (Sectioning).
  • Robustheit wichtiger ist als einzelne Ausführungskosten (Voting).

Wann es nach hinten losgeht

  • Starke Abhängigkeiten zwischen Segmenten bestehen.
  • Semantisches Zusammenführen schwierig ist.
  • Latenz- und Token-Budgets streng begrenzt sind.

Die Abwägung

Niedrigere Latenz und höhere Robustheit werden gegen erhöhte Integrationskomplexität und mehrfache Ausführungskosten erkauft.

Die Wirkung

Was es tatsächlich tut.

Unabhängige Teilaufgaben laufen gleichzeitig und werden dann zusammengeführt.

taskbranch 1branch 2branch 3combined
Fallstricke

Zwei Wege, wie dieses Pattern Probleme verursachen kann.

Chunks, die nicht wirklich unabhängig sind

Die Aufteilung erzeugt Chunks, die impliziten Kontext teilen. Worker produzieren inkompatible Teilergebnisse, die nicht zusammengeführt werden können.

Lösung · Unabhängigkeit vor der Aufteilung validieren. Wenn Chunks Zustand teilen, stattdessen eine Pipeline verwenden.

Join-Logik setzt einheitliche Chunk-Form voraus

Ein Worker gibt eine Liste zurück, ein anderer ein Dict. Der Join-Schritt stürzt ab oder verwirft stillschweigend Daten.

Lösung · Ein Schema-Vertrag für jede Worker-Ausgabe definieren. Nicht konforme Antworten vor dem Zusammenführen ablehnen.

Framework-Unterstützung

Wo Parallelization nativ ist.

Google ADKparallele ZweigeNativ
Microsoft Agent Frameworknebenläufige AgentenNativ
AWS Strandsparallele ToolsNativ
LangGraphParallel-Node-Fan-outNativ
Anthropic Cookbookals Rezept dokumentiertAnpassbar

Suche

Patterns, Frameworks und Seiten durchsuchen.