Skip to content

Submission: DeeptiTalesra#35

Open
DeeptiTalesra wants to merge 8 commits into
mpage:mainfrom
DeeptiTalesra:submission
Open

Submission: DeeptiTalesra#35
DeeptiTalesra wants to merge 8 commits into
mpage:mainfrom
DeeptiTalesra:submission

Conversation

@DeeptiTalesra

Copy link
Copy Markdown

Submission Checklist

  • My file is named submissions/DeeptiTalesra.py.
  • My submission runs locally.
  • My output matches the expected output.
  • I did not hardcode the final output.

Approach Description

Parallel build scheduler with source-data precomputation and inline chaining for Python 3.14t free-threading.

Key optimizations:

  • Precompute source data in parallel: Eliminates ~15% RNG cost per build by computing all source data upfront across worker threads
  • Inline chaining: First ready dependent executes immediately without a queue round-trip, reducing scheduling overhead
  • SimpleQueue (C-implemented): Faster than regular Queue for work distribution
  • Critical path scheduling: Roots sorted by descending work to prioritize the critical path
  • Chain fast-path: Linear dependency chains bypass the queue entirely

@mpage

mpage commented May 16, 2026

Copy link
Copy Markdown
Owner

Hey @DeeptiTalesra - thanks for the submission! Can you please remove the optimization to precompute source data in parallel? Solutions shouldn't modify the build harness.

@github-actions

Copy link
Copy Markdown
Contributor

✅ Results

Metric Value
Speedup 5.929885917346883x
Passed true
Graphs 5

Per-graph results

Graph Speedup Status
chain.json 0.9938800026311189x
diamond.json 13.02602174905964x
realistic.json 22.40506925900785x
tree.json 20.983407788364087x
wide.json 21.17468501024148x

View the leaderboard

Ubuntu and others added 3 commits May 16, 2026 22:08
Use downstream critical-path weight instead of immediate work for
scheduling and inline chaining decisions. Move queue puts outside the
lock to avoid nested locking with SimpleQueue internals.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
_thread.join_thread is not available in the CI's Python 3.14t build.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Oversubscribe slightly (28 workers on 24 cores) so idle cores are
filled when workers block on lock/queue. Reuse a single empty dict
for root targets instead of allocating a new one per build call.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@github-actions

Copy link
Copy Markdown
Contributor

✅ Results

Metric Value
Speedup 5.7988606486165715x
Passed true
Graphs 5

Per-graph results

Graph Speedup Status
chain.json 1.013587844416061x
diamond.json 13.633916592150808x
realistic.json 20.716160763865627x
tree.json 20.006428422766803x
wide.json 20.534847861154322x

View the leaderboard

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@github-actions

Copy link
Copy Markdown
Contributor

✅ Results

Metric Value
Speedup 5.750837090206207x
Passed true
Graphs 5

Per-graph results

Graph Speedup Status
chain.json 0.9823877832987105x
diamond.json 13.662201756765763x
realistic.json 20.21918019647015x
tree.json 19.93212335644563x
wide.json 20.21293899641727x

View the leaderboard

Avoids repeated attribute lookups (dep.name, dep._idx) in the hot
loop by precomputing sorted tuples at setup. Also makes build()'s
internal sorted() see already-sorted keys — O(n) via Timsort.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@github-actions

Copy link
Copy Markdown
Contributor

✅ Results

Metric Value
Speedup 5.870499468358712x
Passed true
Graphs 5

Per-graph results

Graph Speedup Status
chain.json 0.9819985994168186x
diamond.json 13.835448935372922x
realistic.json 20.515213895072787x
tree.json 19.347272395177693x
wide.json 19.56991068129903x

View the leaderboard

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@github-actions

Copy link
Copy Markdown
Contributor

✅ Results

Metric Value
Speedup 5.890863266549812x
Passed true
Graphs 5

Per-graph results

Graph Speedup Status
chain.json 0.9845727964408248x
diamond.json 14.072054161753828x
realistic.json 20.21861765243616x
tree.json 19.212614046076713x
wide.json 19.376292017995045x

View the leaderboard

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.

2 participants