私は実験していてIPython.parallel
、さまざまなエンジンでいくつかのシェルコマンドを起動したいだけです。
次のノートブックがあります。
セル 0:
from IPython.parallel import Client
client = Client()
print len(client)
5
コマンドを起動します。
セル 1:
%%px --targets 0 --noblock
!python server.py
セル 2:
%%px --targets 1 --noblock
!python mincemeat.py 127.0.0.1
セル 3:
%%px --targets 2 --noblock
!python mincemeat.py 127.0.0.1
それが行うことは、mincemeat
MapReduce の実装を使用することです。最初の!python mincemeat.py 127.0.0.1
ものを起動すると、1 つのコアの約 100% を使用しますが、2 つ目を起動すると、それぞれ 50% に低下します。マシンには 4 つのコア (+ 仮想コア) があり、ノートブックではなくターミナルから直接起動するときにそれらを使用できます。
足りないものはありますか?コマンドごとに 1 つのコアを使用したいと考えています!python mincemeat.py 127.0.0.1
。
編集:
わかりやすくするために、複数のコアを使用していない別のものを次に示します。
セル 1:
%%px --targets 0 --noblock
a = 0
for i in xrange(100000):
for j in xrange(10000):
a += 1
セル 2:
%%px --targets 0 --noblock
a = 0
for i in xrange(100000):
for j in xrange(10000):
a += 1
私は何かが欠けていると思います。可能であれば、これらの 2 つのセルは 1 つの異なるコアを実行する必要があると思います。しかし、そうではないようです。ここでも、CPU 使用率は、同じコアを共有し、その 50% を使用していることを示しています。私は何を間違えましたか?