Trent Nelson
2015-07-31 20:14:43 UTC
Hi folks,
Bit off-topic, but just wanted to let people know about an experimental
proof-of-concept fork of Python 3 I've been working on for the past
couple of years called PyParallel: http://pyparallel.org. It essentially
gets around the GIL limitations and allows Python code to run simultaneously
in multiple threads from within a single interpreter/process.
It's Windows only -- so I figured it might be of interest to this list.
It exclusively uses the threadpool APIs that got introduced in Vista,
and has been built from the ground up to leverage the "Windows-way" of
achieving high-performance socket I/O (using overlapped I/O *and*
multiple cores to service completions -- not just polling GQCS() in a
single-threaded event loop).
The performance is pretty phenomenal and it's appearing to scale very
linearly with CPU cores and I/O bandwidth, which is neat. The installer
includes a PyParallel-compatible version of NumPy and pyodbc, so you can
access large NumPy arrays or connect to databases in parallel callbacks.
It's an experimental project though at heart -- don't go using it in
production yet or anything.
Regards,
Trent.
Bit off-topic, but just wanted to let people know about an experimental
proof-of-concept fork of Python 3 I've been working on for the past
couple of years called PyParallel: http://pyparallel.org. It essentially
gets around the GIL limitations and allows Python code to run simultaneously
in multiple threads from within a single interpreter/process.
It's Windows only -- so I figured it might be of interest to this list.
It exclusively uses the threadpool APIs that got introduced in Vista,
and has been built from the ground up to leverage the "Windows-way" of
achieving high-performance socket I/O (using overlapped I/O *and*
multiple cores to service completions -- not just polling GQCS() in a
single-threaded event loop).
The performance is pretty phenomenal and it's appearing to scale very
linearly with CPU cores and I/O bandwidth, which is neat. The installer
includes a PyParallel-compatible version of NumPy and pyodbc, so you can
access large NumPy arrays or connect to databases in parallel callbacks.
It's an experimental project though at heart -- don't go using it in
production yet or anything.
Regards,
Trent.