Skip to content

Queue duplicate congested port route solves#121

Open
0hmX wants to merge 1 commit into
mainfrom
duplicate-congested-port-queue
Open

Queue duplicate congested port route solves#121
0hmX wants to merge 1 commit into
mainfrom
duplicate-congested-port-queue

Conversation

@0hmX

@0hmX 0hmX commented Jun 24, 2026

Copy link
Copy Markdown
Contributor

Summary

This PR changes DuplicateCongestedPortSolver from a synchronous setup-time helper into a normal step-driven solver.

The solver's job is to find ports that multiple independently routed connections all want to use, then duplicate those congested ports so the full route has more local choices. Before this change, it did that detection by solving every single-route problem synchronously during setup. That worked as a utility, but it made the solver hard to compose inside a larger pipeline: there was no useful progress, no active child solver to visualize, and failures could happen outside the usual solver state.

This PR keeps the same high-level behavior, but makes the work observable and schedulable.

What Changed

  • Load the serialized hypergraph during setup, then queue one TinyHyperGraphSolver child per route.
  • Step one child route solver at a time through activeSubSolver.
  • Accumulate port-use counts as route children finish, then duplicate congested ports after all route checks complete.
  • Report setup and child-route failures through normal failed, error, and failedSubSolvers state.
  • Expose progress and stats for the duplicate-port route scan.
  • Delegate visualization to the active child solver while it is running, then show the duplicated source and duplicate ports after completion.
  • Add tests for queued progress and setup-error reporting.

@vercel

vercel Bot commented Jun 24, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
tiny-hypergraph Ready Ready Preview, Comment Jun 24, 2026 4:14pm

Request Review

@tscircuitbot

Copy link
Copy Markdown

Benchmark This PR

Run benchmarks by commenting on this PR:

/benchmark [benchmark.sh args...]
/benchmark --dataset <hg07|srj18> --limit <n> --solver <core|poly> --families <default|default+deep|all> --concurrency <n|auto>

Everything after /benchmark is forwarded directly to ./benchmark.sh.
The result comment shows the matching dataset from the latest stored main-branch benchmark artifact beside the PR run; main is not rerun for each PR benchmark request.

Examples:

  • /benchmark -> hg07, all samples, core solver
  • /benchmark --dataset srj18 --limit 20 -> first 20 srj18 samples
  • /benchmark --dataset srj18 --concurrency auto -> srj18 samples with runner CPU-count concurrency
  • /benchmark --sample sample002 -> one hg07 sample
  • /benchmark --limit 20 --solver poly -> first 20 hg07 samples with the poly solver
  • /benchmark --limit 40 --families default+deep -> first 40 hg07 samples with deeper candidate families

Any PR whose title contains [BENCHMARK TEST] will automatically run the benchmark workflow on PR updates.

Make DuplicateCongestedPortSolver step one TinyHyperGraphSolver child at a
time instead of synchronously solving all single-route checks during setup.
Expose child progress, propagate child/setup errors through normal solver
failure state, and delegate active route visualization with a stable graphics
step for snapshot/debug views.

Add tests for queued progress and setup-error reporting.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants