numpy и Global Interpreter Lock

Я собираюсь написать вычислительно-интенсивный код Python, который почти наверняка будет проводить большую часть своего времени внутри функций линейной алгебры numpy .

Проблема в том, смущающе параллельна . Короче говоря, Самый простой способ воспользоваться этим - использовать несколько потоков. Основным препятствием почти наверняка будет глобальная блокировка интерпретатора (GIL).

Чтобы помочь спроектировать это, было бы полезно иметь мысленную модель, для которой операции numpy могут освободить GIL по их продолжительности. С этой целью я был бы признателен за любые практические правила, что можно и чего нельзя, указатели и т. Д.

Если это важно, я использую 64-битный Python 2.7.1 в Linux с numpy 1.5.1 и scipy 0.9.0rc2, построенные с Intel MKL 10.3.1.

21
задан NPE 1 June 2011 в 11:31
поделиться