Reposting this, seems it got lost in cyber space.
Sturla
Den 8. mars 2011 kl. 16.10 skrev Sturla Molden <stu...@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
_______________________________________________
cython-devel mailing list
cython-devel@python.org
http://mail.python.org/mailman/listinfo/cython-devel