私はscipy.optimize.brute()
を使用していますが、私のコアのうちの1つだけを使用していることに気付きました。グリッド探索の1つの大きな利点は、解アルゴリズムのすべての反復をお互いに独立させることです。Scipy:マルチスレッドのブルート(グリッド検索)?
この場合、brute()
が複数のコアで動作するように実装されていないのはなぜですか?正当な理由がない場合 - それを拡張するための素早い方法がありますか、それとも機能させるか、ルーチン全体をゼロから書く方が理にかなっていますか?
* "関数がC言語のGILをバイパスしない限り、いずれにしても複数のコアで実行することはできません" * - 厳密にはそうではありません。 GILは、CPythonインタプリタが一度に1つのネイティブスレッドしか実行できないことを意味しますが、インタプリタの複数のインスタンスを別々のプロセスで生成し、複数のコアでジョブを同時に実行することができます。これが 'multiprocessing'モジュールの仕組みです。 –