Status of Python threading support (GIL removal)?
Christian Heimes
lists at cheimes.de
Fri Jun 19 19:42:20 EDT 2009
OdarR schrieb:
> On 19 juin, 21:41, Carl Banks <pavlovevide... at gmail.com> wrote:
>> He's saying that if your code involves extensions written in C that
>> release the GIL, the C thread can run on a different core than the
>> Python-thread at the same time. The GIL is only required for Python
>> code, and C code that uses the Python API. C code that spends a big
>> hunk of time not using any Python API (like, as Skip pointed out, a
>> matrix multiply) can release the GIL and the thread can run on a
>> different core at the same time.
>
> I understand the idea, even if I don't see any examples in the
> standard library.
> any examples ?
http://svn.python.org/view/python/trunk/Modules/posixmodule.c?revision=72882&view=markup
Search for Py_BEGIN_ALLOW_THREADS / Py_END_ALLOW_THREADS
> yes, I also speak about hard computation that could benefit with
> multiple cores.
Hard computations gain more speed from carefully crafted C or Fortran
code that utilizes features like the L1 and L2 CPU cache, SIMD etc. or
parallelized algorithms. If you start sharing values between multiple
cores you have a serious problem.
Oh, and use NumPy for the job ;)
>> I wish people would just say, "This is a limitation of
>> CPython. There are reasons why it's there, and it helps some people,
>> but unfortunately it has drawbacks for others", instead of the typical
>> "all u hav 2 do is rite it in C LOL".
>
> "LOL"
> I would like to say such thing about my weather...I live in Europe in
> a rainy country.
It *is* a well known limitation of Python. All the nice 'n shiny syntax
and features are coming with a cost. Python is a powerful language and
good tool for lots of stuff. But Python is and will never become the
übertool that solves every problem perfectly. At some point you need a
different tool to get the raw power of your machine. C (and perhaps
Fortran) are the weapons of choice for number crunching.
Christian
More information about the Python-list
mailing list