IPython.parallel não usa multicore?

Estou experimentandoIPython.parallel e só quero lançar vários comandos shell em diferentes mecanismos.

Eu tenho o seguinte Notebook:

Célula 0:

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

E lance os comandos:

Célula 1:

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

Célula 2:

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

Célula 3:

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

O que faz é usar omincemeat implementação do MapReduce. Quando eu lanço o primeiro!python mincemeat.py 127.0.0.1 ele usa aproximadamente 100% de um núcleo, então quando eu inicio o segundo ele cai para 50% cada. Eu tenho 4 núcleos (+ núcleos virtuais) na máquina e posso usá-los ao iniciar diretamente a partir do terminal, mas não no Notebook.

Há algo que eu esteja perdendo? Eu gostaria de usar um núcleo por!python mincemeat.py 127.0.0.1 comando.

EDITAR:
Para maior clareza, aqui está outra coisa que não está usando vários núcleos:

Célula 1:

%%px --targets 0 --noblock

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

Célula 2:

%%px --targets 0 --noblock

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

Eu suponho que estou faltando alguma coisa. Acredito que essas duas células devem ter um núcleo diferente, se disponível. No entanto, não parece ser o caso. Novamente, o uso da CPU mostra que eles compartilham o mesmo núcleo e usam 50% dele. O que eu fiz errado?

questionAnswers(1)

yourAnswerToTheQuestion