知る限り、グローバル インタープリター ロックthreading.Thread
により、インスタンスを実際に並列実行することはできません。これは、常に1 つのスレッドのみを強制的に実行できるようにします (I/O 操作でブロックする場合を除く)。
ParallelPythonはthreading
モジュールを使用します。
ただし、複数のローカルジョブを送信すると、それらは並行して実行されるか、少なくともそのように見えます。私は 8 つのコアを持っており、単純に空のループを実行するために 8 つのジョブを開始すると、それらはすべて CPU の 12 ~ 13% を占有します (つまり、それぞれが 1 つのコアで実行され、タスク マネージャーで確認できます)。
誰もがこれがどのように起こるか知っていますか?