Dies ist ein riskantes Geschäft, und ich verstehe das Global Interpreter Lock als einen furchtbaren Gegner der Parallelität. Wenn ich jedoch NumPy's C API (speziell das Makro PyArray_DATA
auf einem NumPy-Array) verwende, gibt es mögliche Konsequenzen, um es aus mehreren gleichzeitigen Threads aufzurufen?Welche Auswirkungen hat das Aufrufen der C API-Funktionen von NumPy aus mehreren Threads?
Beachten Sie, dass ich immer noch die GIL besitzen und nicht mit freigeben werde. Auch wenn NumPy keine Garantie für die Fadensicherheit gibt, aber PyArray_DATA
ist in der Praxis fadensicher, das ist gut genug für mich.
Ich benutze Python 2.6.6 mit NumPy 1.3.0 unter Linux.