FazBrowse GitHub Viewer | Trending |
URL:
| Home
Tools: [Download Repo ZIP]   [Original HTTPS Page]

Add support for GraalPy by maurycy · Pull Request #434 · python/pyperformance · GitHub

Repository navigation

Add support for GraalPy - #434

Draft
maurycy wants to merge 2 commits into
python:mainfrom
maurycy:graalpy
Draft

maurycy wants to merge 2 commits into
python:mainfrom
maurycy:graalpy

Conversation

maurycy commented Oct 26, 2025 •
edited
Loading

Copy link
Copy Markdown
Contributor

It's an alternative Python implementation, as per python/pythondotorg#2797 and supported by https://github.com/actions/setup-python

maurycy changed the title Add support for graalpy-24.0 Add support for GraalPy Oct 26, 2025
maurycy marked this pull request as draft October 26, 2025 21:48

maurycy commented Oct 26, 2025

Copy link
Copy Markdown
Contributor Author

@timfel What do you think?

It mostly worked:

5 benchmarks failed:
- dask (Benchmark died)
- gc_collect (Benchmark died)
- networkx (Benchmark died)
- networkx_connected_components (Benchmark died)
- networkx_k_core (Benchmark died)

It was extremely slow:

I cancelled it after an hour.

Is it premature? Does it require much more powerful runner?

timfel commented Oct 27, 2025

Copy link
Copy Markdown

@maurycy we run the pyperformance benchmarks internally, but they require a powerful runner and lots more warmup than PyPy or CPython per benchmark. One hour is not nearly enough, we give it 18 cores and 64G of RAM and it runs in about 2.5 hours

timfel commented Oct 27, 2025

Copy link
Copy Markdown

As for the benchmarks, the networkx benchmarks should work, that's a bug on our side. But dask and gc_collect as are won't, the GC benchmarks in general just don't make much sense on GraalPy, since we have a completely different GC, so neither the benchmark nor any assertions make sense for us. The dask one doesn't work because we don't support the dis module, we have no current plans for this. So those would have to be excluded for GraalPy

hugovk commented Oct 27, 2025

Copy link
Copy Markdown
Member

This also increases the CI runs from around 13 minutes to over 2.5 hours.

maurycy commented Oct 27, 2025 •
edited
Loading

Copy link
Copy Markdown
Contributor Author

@maurycy we run the pyperformance benchmarks internally, but they require a powerful runner and lots more warmup than PyPy or CPython per benchmark. One hour is not nearly enough, we give it 18 cores and 64G of RAM and it runs in about 2.5 hours

That was just tests, though:

Other tests finished in ~10 minutes

FYI: The whole benchmark runs in ~1h on cpython on i9-12900K, 128G DDR4

timfel commented Oct 27, 2025

Copy link
Copy Markdown

@maurycy if it's anything like in our internal setup, running the pip subprocesses to install dependencies is easily the worst part of the runtime. These creating venv for benchmark steps are easily 20x slower than on CPython, and when 2s turn into 40s times ~90 benchmarks this fills the time quickly.

This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode characters
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.

3 participants


Back | FazBrowse Home | New Git URL