[Cython] Another CEP: Parallel block

mark florisson markflorisson88 at gmail.com
Tue Apr 5 11:05:26 CEST 2011


On 5 April 2011 11:01, Stefan Behnel <stefan_ml at behnel.de> wrote:
> mark florisson, 05.04.2011 10:44:
>>
>> On 5 April 2011 10:34, Stefan Behnel wrote:
>>>
>>> mark florisson, 05.04.2011 10:26:
>>>>
>>>> On 5 April 2011 09:21, Dag Sverre Seljebotn wrote:
>>>>>
>>>>> Justification for Cython-specific syntax: This is something that is
>>>>> really
>>>>> only useful if you can release the GIL *outside* of the loop. So I feel
>>>>> this
>>>>> is an area where a custom Cython solution is natural, sort of like
>>>>> "cdef
>>>>> extern", and the buffer access.
>>>>>
>>>>> Since a similar pure-Python solution is rather useless, I also think
>>>>> there's
>>>>> less incentive for making something that works well in pure-Python
>>>>> mode.
>>>>
>>>> Which feature is Cython specific here? The 'with a, b as c:' thing?
>>>
>>> No, the syntax is just Python. It's the scoping that's Cython specific,
>>> including the local variable declarations inside of the "with" block.
>>
>> Hmm, but you can use cython.declare() for that, no?
>
> cython.declare() is a no-op (or just a plain assignment) in Python. But the
> thread-local scoping of these variables cannot be emulated in Python. So
> this would be a feature that cannot be used in pure Python mode, unlike
> closures.

Sure, but the Python version would just be serial, it wouldn't use
threads at all. That's the great thing about OpenMP's philosophy is
that it can be either serial or parallel, the only difference is
speed. If you want speed, use Cython.

> Stefan
> _______________________________________________
> cython-devel mailing list
> cython-devel at python.org
> http://mail.python.org/mailman/listinfo/cython-devel
>


More information about the cython-devel mailing list