[Numpy-discussion] Cython-based OpenMP-accelerated quartic polynomial solver

Sturla Molden sturla.molden at gmail.com
Fri Oct 2 16:15:05 EDT 2015


Sturla Molden <sturla.molden at gmail.com> wrote:

> Cython actually requires that there is a shared address space, and it
> invokes something that strictly speaking has undefined behavior under the
> OpenMP standard. So thus, a prange block in Cython is expected to work
> correctly on a laptop with a multicore processor, but it is not expected to
> work correctly on a cluster.

OpenMP does not guarrantee that dereferencing a pointer in a parallel block
will dereference the same object across all processors. It only guarrantees
that the value of a shared object can be synchronized. There are many who
use OpenMP and think only in terms of threads that do this incorrectly.
Cython is actually among those.

S.M.




More information about the NumPy-Discussion mailing list