Как отключить ограничение процессора Jupyter? - PullRequest
0 голосов
/ 25 июня 2018

Я написал код для параллельного запуска задачи с использованием библиотеки multiprocessing. Когда я запускаю этот код прямо из терминала, он работает правильно, используя количество ядер, определенных ранее.

from multiprocessing import Pool
from minepy import MINE

def mic(pair):

    assert len(pair) == 4 and isinstance(pair, tuple)

    x, y, x_name, y_name = pair

    mine = MINE()

    mine.compute_score(x, y)

    return {(x_name, y_name): mine.mic()}

num_cores = multiprocessing.cpu_count() - 1

inputs = [(independent_var.as_matrix(), dependent_var.as_matrix(),
           independent_var.name, dependent_var.name) 
           for i, independent_var in dataset.iteritems()
           for j, dependent_var in dependent_variables.iteritems()
           if len(dependent_var.unique()) > 1]

if len(inputs) > 0:
    with Pool(num_cores) as p:
        results = p.map(func, inputs)

Но когда я запускаю его через Jupyter в Windows, ядра работают правильно в течение нескольких секунд. После этого процесс останавливается и просматривается. Есть ли способ избежать такого поведения?

1 Ответ

0 голосов
/ 25 июня 2018

Код, который вы предоставили, работает нормально.

Возможно, вам придется предоставить больше данных, например, содержимое списка inputs и / или определение функции func, чтобы мы могли воспроизвестиэта проблема.

Также проверьте результаты вызова multiprocessing.cpu_count(), который вы используете - он часто неправильно определяет количество ядер во многих средах.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...