[Cython] OpenMP support

Sturla Molden sturla at molden.no
Tue Mar 8 16:44:40 CET 2011


Reposting this, seems it got lost in cyber space.

Sturla


Den 8. mars 2011 kl. 16.10 skrev Sturla Molden <sturla at molden.no>:

> Den 08.03.2011 11:34, skrev mark florisson:
>> However, considering that OpenMP has quite a few constructs,
>
> No, OpenMP has very few contructs, not quite a few. And most of them  
> are not needed, nor wanted, because the functionality is covered by  
> the Python language (such as scoping rules).
>
> I.e. we do not need -- nor want -- things like private, shared,  
> firstprivate or lastprivate in Cython, because the scope of  
> variables inside closures are already covered by Python syntax.  
> OpenMP is just making up for the lack of closures in C here.
>
> We don't need to implement #pragma omp critical, because we have  
> threading.Lock.
>
> We don't need to implement #pragma omp atomic, because we have the  
> GIL (as well as OS and compiler support for atomic operations).
>
> #pragma omp barrier becomes a butterfly of threading.Event.
>
> Etc.
>
> There is not really much left to implement. We need a decorator to  
> launch closures as parallel blocks (trivial) and classes to do  
> static, dynamic and guided load balancing (trivial as well).
>
> It is hardly a page of code to write, just a handful of small  
> classes, once Cython has closures working properly.
>
> Sturla
>
>
>
>
>
>
>
>
>
>
>
>
>


More information about the cython-devel mailing list