-
Notifications
You must be signed in to change notification settings - Fork 49
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Get the Pyston macrobenchmarks working on main
#175
Comments
@brandtbucher Could you contribute the specific list of benchmark failures that you've experienced? Maybe we need a separate issue for each (unless they're all just "needs to use the fixed Cython release" :-). |
Yep!
Give me a moment to gather the individual failure messages... |
The logs are too long to leave in a comment. I've dumped the failures into a Gist instead: https://gist.github.com/brandtbucher/9c1368c43f31b1d31c1efbd3d2fdf5e8 |
So the "gist" is:
Runtime failures:
|
I propose to create separate TODO issues for each. I suspect the "In Review" column of the Project board might come in handy once we start working down the list... |
|
Do you mind if I assign this to you? Somebody needs to track all those fixes, nudge them along if needed, and update the requirements.txt files in PyPerformance once the fixes have been released. Since you tracked down so many of these already maybe we can make it official that you are the "whip" for this topic. |
Yup, I can herd these. |
mypy pins an overly old version of typed-ast. The current release (0.910) has typed-ast is an optional dependency for mypy though, only necessary on Python <3.8 or to typecheck Python 2 code. Perhaps you can get away with removing it from your benchmark. |
Benchmarks usually pin some older version of a package since we want benchmark numbers to be comparable over time. (Though sometimes we have to just toss old data anyway.) |
Also see python/pyperformance#113. |
@brandtbucher, what is the status on this? I ran the benchmarks today and am still seeing all the same failures. (#257) What else needs to be done to get the benchmarks to run successfully? |
Is this issue just about the pyston benchmarks? |
Yeah, it should probably be renamed. Also, I haven't forgotten about this; I'm just prioritizing the inline caching stuff right now since that needs to be done before the beta freeze. I have a hunch that the Pyston macrobenchmarks will help us out a lot with 3.12, but not so much with 3.11. |
@kmod |
Wrong Brandt. 😉 I haven't looked at those since last year, so I'm not entirely sure. If I remember correctly, the Pillow issue can be fixed by apt-installing some required JPEG library? Looking at my old gist of the failures, the kinto ones look like they would be fairly mechanical fixes for our older frame changes. Not positive, though. |
Hm, I cannot get myself to claim that this is a priority before beta 1. Though it would be nice to have more numbers at the language summit, I don't think we should drop other work for it. |
Here are the full Pyston results on pyperformance:
|
We finally released pyperformance 1.0.5 and that should be able to build and run all benchmarks. So now you should be able to update the pyston speed center with one more bar. :-) |
I'm working on picking this back up. It seems like there's two categories of issues (1) dependencies not compatible with Python 3.11 yet, and (2) the issue with measuring a webserver in a separate process. For (1), that's just fiddly work, and we can probably produce some custom wheels and put them somewhere until packages are updated. For (2), @kmod, did you get anywhere with this? I can at least attempt to carry the baton forward.
|
Yes! This issue is addressed in the latest version of our macrobenchmarks repo. I still consider my solution a hack, but chatting briefly with @ericsnowcurrently we didn't come up with a proper solution that seemed worth the effort. So anyway while it's a bit hacky it does work, and I switched from our custom script to using pyperformance for the numbers I collected in our blog post today. |
Great news! Maybe I'm just doing something wrong -- I think there still might be guards against running the benchmarks in pyperformance. Running
I still get
from most of the benchmarks. |
Oh, sorry we only look at WEB_MANIFEST on a daily basis, so I'm not sure the other ones are all properly migrated at this point. I believe though that that particular error message should be gone with my recent commits; are you maybe using the macrobenchmarks submodule from our main pyston repo? The PR to update the submodule commit hasn't been merged yet so that one will still give you this message. |
Separately, I'll work on migrating the other benchmarks that need it. |
Sorry -- it looks like many of these were fixed just in the last 2 days and I hadn't updated my fork. |
A status update: I have all but three of the benchmarks working with Python 3.11. You can see my changes/hacks that were necessary here. Benchmarks requiring changesaiohttp (DONE: pyston/python-macrobenchmarks#8), gunicorn: (PR: pyston/python-macrobenchmarks#9)
mypy: (DONE: pyston/python-macrobenchmarks#7)
pylint: (DONE: Submitted upstream)
Benchmarks still not workinggevent_hub:
kinto:
pytorch_alexnet_inference: Haven't tackled this one yet. |
@mdboom could you share what you did to make uwsgi build and work against 3.11? |
I have a branch here, that compiles and passes the test suite, but I don't consider it a "mergeable" solution. In particular, I think the initialization of the interpreter to use the new |
Thanks, that's pretty helpful. |
There's a PR on uwsgi for making 3.11 work coming from the Fedora side which looks roughly similar (at least to me): unbit/uwsgi#2453 |
So the uwsgi patch mentioned above is in, so if that works, that leaves just gevent I guess ? |
@mdboom Is this done now? |
No, the gevent stuff is still pending as far as I can tell. |
Still only waiting on gevent. |
The text was updated successfully, but these errors were encountered: