Repository navigation
mipyre: replace the pyronova entry (mipyre 3.0.0 from PyPI) - #1668
Conversation
|
/benchmark --save |
|
👋 Benchmark request received. A collaborator will review and approve the run. |
Benchmark ResultsFramework:
Full log |
3.0.1 lets the thread-per-core server take MIPYRE_ASYNC_QUEUE_CAPACITY; the default (128 per async worker) answered most of the async profile's 32000 concurrent requests with 503.
|
Updated to mipyre 3.0.1. The async run showed 71.7% 5xx: past 2048 queued Could you re-run |
|
👋 Benchmark request received. A collaborator will review and approve the run. |
Benchmark ResultsFramework:
Composite score, main against this run, in the board's default view:
The results on main were measured in another session, so a few points up or down can be the machine and not the change. Full log |
|
Hi, please set type to experimental in meta.json |
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
Done, |
|
/benchmark --save |
|
👋 Benchmark request received. A collaborator will review and approve the run. |
Benchmark ResultsFramework:
Composite score, main against this run, in the board's default view:
The results on main were measured in another session, so a few points up or down can be the machine and not the change. Full log |
|
Hi, thanks for merging! The results from the saved benchmark runs on this PR never reached So Could you run the Benchmark workflow with |
|
👋 Benchmark request received. A collaborator will review and approve the run. |
|
|
|
Sorry for the noise: the bot warning above was triggered by the command name quoted in my previous comment, not a request for a run (I have edited it out). No run is needed on this PR; only the Benchmark workflow with |
|
Moved to #1711: it comes from a personal fork, so the saved run can push its results there. Nothing to do on this PR. |
Hi! Pyronova is now mipyre (same engine and authors, new name: https://github.com/leocaolab/mipyre,
pip install mipyre). This PR addsframeworks/mipyre/and removesframeworks/pyronova/.What the entry runs.
Dockerfile: the released wheel from PyPI (mipyre==3.0.0, cp314 manylinux x86_64) onpython:3.14-slim. No Rust toolchain, no clone, no-C target-cpu=native: the build is the wheelanyone gets from
pip install mipyre.launcher.py: one process serves every port: 8080 plain, 8082 plain (h2c prior knowledge),and with the certs mounted 8081 and 8443 over TLS. It sizes the server to one thread per physical
core of the container's cpuset (32 on
0-31,64-95, 4 on0-3,64-67) and gives every setting as aMIPYRE_*variable; mipyre refuses aMIPYRE_*name it does not read, so a renamed setting stopsthe start instead of silently running on defaults.
app.py: one sub-interpreter per thread runs every route;async defroutes (/delay/{ms}) runon their worker's asyncio loop.
Changes against the current pyronova entry, profile by profile.
/echois a plain route returningResponse(req.body). The current line(
@app.post("/echo", gil=True, stream=True)) is our fault: in pyronovastream=Truerequiredgil=True, so every echo queued for the main interpreter's single GIL (3.7 cores, 28.6k rps,1.03 s mean latency on the Arena).
/json/{count}builds the items and returns the dict on every request;the per-worker cache of serialized responses keyed by
(count, m)is gone (the tuned rules forbidresponse caching keyed by URL or parameters).
str(text/plain; charset=utf-8), readaandbwithreq.query_param(), and parse the POST body withint(req.body).GetSumservice is opt-in, so the app callsapp.enable_grpc_benchmark()./delay/{ms}), static-tls(
app.static(..., precompressed=True)on every port), fortunes (PgPoolquery, runtime row,sort,
html.escape) and latency-500k-8cpu (no new code: the cpuset gives 4 threads)./json-comp/{count}are gone: no profile drives them since profiles: remove static and crud #1374./wsstays inapp.py.Tier.
meta.jsonlists the entry asproduction: mipyre 3.0.0 is a stable release on PyPI(
Development Status :: 5 - Production/Stable), not the experimental pyronova line. Happy to changeanything in the entry if you see it differently.
Validated with
scripts/validate.sh mipyreatd92ece0b2(no changes toscripts/validate.shor theprofiles since) on an image built from this Dockerfile, installing
mipyre==3.0.0from PyPI:113 passed, 0 failed, every subscribed profile.
Thanks for running the Arena!