Я собираюсь написать некоторый вычислительно-интенсивный код Python, который почти наверняка проведет большую часть своего времени в numpy
функциях линейной алгебры.
Проблема под рукой смущающе параллельна . Короче говоря, для меня проще всего воспользоваться этим, используя несколько потоков. Главным барьером почти наверняка будет Глобальная блокировка интерпретатора (GIL).
Чтобы помочь спроектировать это, было бы полезно иметь ментальную модель, для которой numpy
операций, как ожидается, могут высвобождать GIL в течение их продолжительности. В связи с этим, я был бы признателен за любые эмпирические правила, правила и запреты, указатели и т. Д.
На случай, если это имеет значение, я использую 64-битный Python 2.7.1 в Linux с numpy
1.5.1 и scipy
0.9.0rc2, построенный с Intel MKL 10.3.1.