Skip to content

Measure dirty scheduler contention and retain I/O inference - #29

Draft
mtwilliams wants to merge 1 commit into
codex/ortex-managed-runsfrom
codex/ortex-scheduler-evidence
Draft

mtwilliams wants to merge 1 commit into
codex/ortex-managed-runsfrom
codex/ortex-scheduler-evidence

Conversation

@mtwilliams

Copy link
Copy Markdown
Collaborator

Retains dirty I/O scheduling for inference based on a reproducible contention experiment. A source-only diagnostic feature switches all inference NIFs to dirty CPU, and an internal mode query rejects stale native artifacts. Default/precompiled builds retain the existing schedule. Control preparation remains on dirty CPU and termination remains a short normal NIF.

On Apple silicon with 4 normal/4 dirty CPU/4 dirty I/O schedulers, 2,000 golden-score tree runs had similar concurrent throughput (~86k calls/s). With 16 calls contending for one finite Loop session, a separate 2 MiB CPU-copy probe had p50 52µs on dirty I/O versus 71,779µs on dirty CPU (10 rounds). Mutex waiters can monopolize the CPU pool. docs/schedulers.md records exact results, reproduction, and limits for other graph/provider workloads.

Validation: both modes compiled and completed the benchmark with checked scores/results. The default build was restored and verified by the loaded NIF, then 216 checks passed on runtimes 1.17.3 and 1.24.4 (two optional ResNet checks excluded). Formatting and actionlint passed. CI compile-checks the diagnostic feature with all provider mappings. Stacked on #28; fork only. Task commit unsigned because the signing agent cancels requests.

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.

1 participant