# Parallelism

Record: `arch:parallelism`
Kind: technique
Layer: [Performance Core](https://banes-lab.com/records/layer/performance-core.md)
Severity: contextual
Scope: algorithm, processing, runtime
Canonical: https://banes-lab.com/ontology#arch-parallelism

## Repair

- Refactored by: Split Work, Add Parallel Execution
- Detected by: CPU bottlenecks with independent work
- Violated by: serial processing of independent heavy tasks
- Measured by: speedup, utilization
- Enforced by: performance benchmarks

## requires

- [Independent Work Units](https://banes-lab.com/records/lex/independent-work-units.md)

## reinforces

- [Throughput](https://banes-lab.com/records/arch/throughput.md)
- [Performance](https://banes-lab.com/records/lex/performance.md)

## enables

- [Multi-Core Utilization](https://banes-lab.com/records/lex/multi-core-utilization.md)

## conflicts-with

- [Sequential Bottleneck](https://banes-lab.com/records/lex/sequential-bottleneck.md)

## tensions-with

- [Coordination Overhead](https://banes-lab.com/records/lex/coordination-overhead.md)

## tensions

- [Parallelism Coordination Overhead](https://banes-lab.com/records/tension/coordination-overhead-parallelism.md)

## referenced-by

- [Causality](https://banes-lab.com/records/arch/causality.md)
- [Partitioning](https://banes-lab.com/records/arch/partitioning.md)
- [Fan-out/Fan-in](https://banes-lab.com/records/arch/fan-out-fan-in.md)
