7

CPUに大きく依存するPythonプログラムを実行すると、単一のコアしか使用しないことに気付きます。プログラムを実行するときに、プログラムに複数のコアを割り当てることはできますか?

4

3 に答える 3

16

複数のコアに対して明示的にプログラムする必要があります。Pythonの多くの並列処理ソリューションについては、このページの対称型マルチプロセッシングオプションを参照してください。オプションを比較するのが面倒な場合は、並列Pythonが適しています。こちらの例をご覧ください。

ただし、一部の問題では複数のコアを利用できません。3人の友人の助けを借りて、どうすれば階段をより速く駆け上がることができるか考えてみてください。起こらない!

于 2010-12-23T15:15:13.960 に答える
5

CPython の GIL (Global Interpreter Lock) について誰も言及していないのはなぜだろうか。これは基本的に、1 つの Python インタープリター内の複数のスレッドが複数のコアの能力を使用できないことを意味します。これは、多くの操作がスレッドセーフにするためにグローバル ロックによって保護されているためです。これは、少数のアプリケーション (CPU バウンドのアプリケーション) にのみ適用されます。詳細については、「GIL」という用語を検索してください。すでに多くの質問があります(たとえば、そのようなものです)。

もちろん、この回答は、実際に複数のスレッドを使用していることを前提としています。そうしないと、とにかく複数のコアを使用できなくなります(マルチプロセッシングは別の可能性です)。

于 2010-12-23T16:35:14.993 に答える
4

問題の一部を並行して実行できる場合は、マルチプロセッシングモジュールを調べる必要があります

于 2010-12-23T15:15:46.403 に答える