Skip to content

Performance: multi-threaded levelized timing propagation (std-only) #2

Description

@shivarammysore

Context
Arrival/required propagation is single-threaded. Large routed blocks leave cores idle.

Task
Levelize the timing graph (topological levels) and propagate independent nodes in parallel within each level; do the backward (required) pass the same way. Keep the engine dependency-free — use std::thread::scope, no external crates. Level barriers make results order-independent and deterministic.

API

  • --threads N (default = available parallelism; --threads 1 = current behaviour).

Acceptance

  • bit-identical results vs single-threaded across the whole test suite (determinism test);
  • measured speed-up on a large routed block (report scaling);
  • no new dependencies.

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions