IPython.parallel не использует многоядерный?

Я экспериментирую с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 он использует примерно 100% одного ядра, затем, когда я запускаю второе, оно падает до 50% каждое. У меня есть 4 ядра (+ виртуальные ядра) на машине, и я могу использовать их при запуске непосредственно из терминала, но не в ноутбуке.

Есть ли что-то, что мне не хватает? Я хотел бы использовать одно ядро на!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

Я полагаю, я что-то упустил. Я считаю, что эти две ячейки должны работать с разными ядрами, если они доступны. Однако, похоже, это не так. Опять же, использование процессора показывает, что они используют одно и то же ядро и используют его на 50%. Что я сделал не так?

Ответы на вопрос(1)

Ваш ответ на вопрос