Skip to content

Submission: DeeptiTalesra - #35

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

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

This branch has not been deployed

No deployments
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