ParallelRunner class enables running multiple tasks in parallel with controlled concurrency.
Basic Usage
Constructor
Parameters
| Parameter | Type | Default | Description |
|---|---|---|---|
task_paths | list[Path] | Required | List of task directories |
n_concurrent | int | 2 | Max concurrent tasks |
model | str | Gemini default | Model identifier |
provider | str | "docker" | Environment provider |
output_dir | str | Path | "output" | Where to save outputs |
quiet | bool | False | Suppress individual task output |
on_complete | Callable | None | Callback for each completed task |
Helper Functions
discover_tasks()
Find all tasks in a directory.Methods
run()
Execute all tasks and return aggregate results.BatchResult with aggregate statistics
BatchResult
The result object returned byrun().
TaskResult
Examples
Basic Batch Run
With Progress Callback
Analyzing Results
Custom Task Selection
Comparing Models
Using Daytona
Saving Results to JSON
Best Practices
Choose appropriate concurrency
Choose appropriate concurrency
Match concurrency to your resources:
- Local Docker: 2-8 based on RAM
- Daytona: 10-50+ for cloud scaling
Use callbacks for progress
Use callbacks for progress
The
on_complete callback provides real-time progress:Handle partial failures
Handle partial failures
Check individual task results, not just aggregates: