33

ほとんどの時間をnumpyの線形代数関数内で費やすことになる計算集約型の Python コードを書き込もうとしています。

当面の問題は、恥ずかしいほど並列です。簡単に言えば、それを利用する最も簡単な方法は、複数のスレッドを使用することです。主な障壁はほぼ確実に Global Interpreter Lock (GIL) です。

これを設計するのに役立つように、numpy操作がその期間中に GIL を解放することが期待できるメンタル モデルがあると便利です。この目的のために、経験則、すべきこととすべきでないこと、ポインタなどをいただければ幸いです。

念のため、 Linux で 64 ビットの Python 2.7.1 を使用しています。1.5.1numpyscipy0.9.0rc2 を使用し、Intel MKL 10.3.1 でビルドされています。

4

3 に答える 3

5

NumPy と並列プログラミングに関するすべての質問への回答は、おそらく公式 wikiにあります。

また、このレシピ ページもご覧ください。複数のスレッドで NumPy を使用する方法のサンプル コードが含まれています。

于 2011-06-01T12:30:06.883 に答える
4

恥ずかしながらパラレル?でこぼこ?PyCUDAまたはPyOpenCLの良い候補のように思えます。

于 2011-06-01T14:29:30.717 に答える