stl-benchmark
ideas
stl-benchmark | ideas | |
---|---|---|
1 | 81 | |
6 | 1,651 | |
- | 0.4% | |
0.0 | 7.3 | |
over 1 year ago | 2 months ago | |
C++ | ||
MIT License | - |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
stl-benchmark
-
JNumPy: Writing high-performance C extensions for Python in minutes
Some of these are just safety-by-default things. For example, IO in Julia is thread-safe by default, which I think is a good idea because safety-first programming is good for say throwing `print` into a threaded loop written in the REPL. Here for example, https://github.com/aaronang/stl-benchmark/pull/3, was a case where Julia saw a performance hit from C++ and I was curious and tracked it down to this locking-by-default behavior. I'm not sure of a better way of handling it: the C/C++ behavior of not locking by default would make doing things correctly simply would be very hard to use (and is very hard in those languages).
Though I agree parsers haven't gotten much love in Julia. That said, this repo is saying it's for implementing NumPy extensions, and I don't think NumPy has many parsers it's using.
ideas
-
Type information for faster Python C extensions
Lower latency native calls in Python would be extremely useful, thank you for your work! Is the following GitHub issue the right place to monitor progress? https://github.com/faster-cpython/ideas/issues/546
I'm open to doing some benchmarking. Several of my libraries have pure CPython bindings (StringZilla, UCall, SimSIMD), and all perform low-latency SIMD-accelerated ops, so might be a good testing ground :)
-
How Many Lines of C It Takes to Execute a and B in Python?
Recent CPython development has been towards optimizations and addressing use cases that benefit from optimizations, some coming from the faster CPython initiative. You might just get your JIT[1].
[1] https://github.com/faster-cpython/ideas/wiki/Workflow-for-3....
-
GIL removal and the Faster CPython project
The faster-cpython folks seem to be working towards a JIT (https://github.com/faster-cpython/ideas/tree/main/3.13) and both pyston and cinder have JITs. So I don't think anyone has ruled one out.
-
Our Plan for Python 3.13
faster-cpython team has done a lot of work to experiment on it: https://github.com/faster-cpython/ideas/issues/485#issuecomm...
It kind of sounds like migration to register based is a foregone conclusion, but it's not very clear to me.
-
Faster CPython at PyCon, part two
lots of big ideas are still remaining to be done. One example is the register based interpreter, see https://github.com/faster-cpython/ideas/issues/485
A previous plan called for the beginning of a JIT in 3.12, seen as "Trace optimized interpreter" here: https://github.com/faster-cpython/ideas/wiki/Workflow-for-3....
- EdgeDB – A graph-relational database built on top of Postgres
- Python 3.12 Nogil Benchmark
What are some alternatives?
jnumpy - Writing Python C extensions in Julia within 5 minutes.
Nuitka - Nuitka is a Python compiler written in Python. It's fully compatible with Python 2.6, 2.7, 3.4, 3.5, 3.6, 3.7, 3.8, 3.9, 3.10, and 3.11. You feed it your Python app, it does a lot of clever things, and spits out an executable or extension module.
faster-cpython - How to make CPython faster.
Pyjion - Pyjion - A JIT for Python based upon CoreCLR
pyenv-virtualenv - a pyenv plugin to manage virtualenv (a.k.a. python-virtualenv)
nogil - Multithreaded Python without the GIL
cinder - Cinder is Meta's internal performance-oriented production version of CPython.
hpy - HPy: a better API for Python
RustPython - A Python Interpreter written in Rust
LoopVectorization.jl - Macro(s) for vectorizing loops.
Tile38 - Real-time Geospatial and Geofencing