ほとんどの時間をnumpy
の線形代数関数内で費やすことになる計算集約型の Python コードを書き込もうとしています。
当面の問題は、恥ずかしいほど並列です。簡単に言えば、それを利用する最も簡単な方法は、複数のスレッドを使用することです。主な障壁はほぼ確実に Global Interpreter Lock (GIL) です。
これを設計するのに役立つように、numpy
操作がその期間中に GIL を解放することが期待できるメンタル モデルがあると便利です。この目的のために、経験則、すべきこととすべきでないこと、ポインタなどをいただければ幸いです。
念のため、 Linux で 64 ビットの Python 2.7.1 を使用しています。1.5.1numpy
とscipy
0.9.0rc2 を使用し、Intel MKL 10.3.1 でビルドされています。