IPython.parallel nicht mit Multicore?

Ich experimentiere mitIPython.parallel und möchte nur mehrere Shell-Befehle auf verschiedenen Engines starten.

Ich habe folgendes Notizbuch:

Zelle 0:

from IPython.parallel import Client
client = Client()
print len(client)
5

Und starte die Befehle:

Zelle 1:

%%px --targets 0 --noblock
!python server.py

Zelle 2:

%%px --targets 1 --noblock
!python mincemeat.py 127.0.0.1

Zelle 3:

%%px --targets 2 --noblock
!python mincemeat.py 127.0.0.1

Was es tut, ist es nutzt diemincemeat Implementierung von MapReduce. Wenn ich das erste starte!python mincemeat.py 127.0.0.1 es verwendet ungefähr 100% eines Kerns, und wenn ich den zweiten starte, sinkt er auf jeweils 50%. Ich habe 4 Kerne (+ virtuelle Kerne) auf dem Computer und kann sie beim Starten direkt vom Terminal aus verwenden, aber nicht im Notebook.

Fehlt mir etwas? Ich würde gerne einen Kern pro verwenden!python mincemeat.py 127.0.0.1 Befehl.

BEARBEITEN:
Der Übersichtlichkeit halber ist hier eine andere Sache, bei der nicht mehrere Kerne verwendet werden:

Zelle 1:

%%px --targets 0 --noblock

a = 0
for i in xrange(100000):
    for j in xrange(10000):
        a += 1

Zelle 2:

%%px --targets 0 --noblock

a = 0
for i in xrange(100000):
    for j in xrange(10000):
        a += 1

Ich vermute, ich vermisse etwas. Ich glaube, diese beiden Zellen sollten einen unterschiedlichen Kern haben, falls verfügbar. Dies scheint jedoch nicht der Fall zu sein. Die CPU-Auslastung zeigt erneut, dass sie denselben Kern gemeinsam nutzen und 50% davon nutzen. Was habe ich falsch gemacht?

Antworten auf die Frage(1)

Ihre Antwort auf die Frage