Skip to content

Parallelism

Parallelism is the maximum number of independent ready nodes that may execute at once. Default 4.

Set it in ≔ params → parallelism on the workflow.

In yarn, ply is how many strands twisted together; here it is how many branches run side by side. The plain idea is a concurrency ceiling.

One prompt fans out to three agents on different providers, all running in the same wave, then a merge combines their answers by majority into a single output.

Parallelism 3: all three agents occupy one wave, so the wall clock is the slowest of them rather than their sum. A merge brings the branches back to one value.


The runner repeats three steps until the graph is done:

  1. Find every node whose predecessors have all completed — the ready set.
  2. Execute up to the configured parallelism of them concurrently.
  3. Check the graph spend ceiling, then form the next wave.

So parallelism doesn’t reorder anything — dependencies are still respected exactly. It only decides how many already-eligible nodes may work at the same time.


If A fans out into B and C, both become ready the moment A finishes:

parallelismBehavior
1B runs, then C — wall clock is their sum
2 or moreB and C run together — wall clock is the slower of the two

For agent nodes, each one is a separate CLI process and a separate session, so the saving is real: three agents that take 2, 3, and 5 minutes finish in 5 minutes instead of 10.


SituationSuggested
Debugging a graph, want a readable log1
Typical multi-agent fan-out24 (default 4)
Many cheap local custom nodeshigher is fine
Rate-limited provider, or heavy local CPUlower

Parallelism is a ceiling, not a target — a graph with no parallel branches runs identically at any setting.


Concurrency and budgets pull against each other: several agents can be mid-flight when the ceiling is reached. threadle checks the graph spend ceiling between waves, so a run can overshoot by at most the wave that was already in flight. Per-branch circuit breakers still fire inside a wave, on their own wire.


Parallel fan + majority merge — two Cursor asks in parallel, merged by a majority merge, with a duration fuse watching the clock.

Terminal window
threadle run ply-fan-knot --approve-all