如何禁用Jupyter的CPU限制?

时间:2018-06-25 16:45:54

标签: python jupyter

我编写了一个代码,以使用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)

但是,当我在Windows上通过Jupyter运行它时,几秒钟内正确使用了内核。之后,该过程将停止并进行查看。有什么办法可以避免这种行为?

1 个答案:

答案 0 :(得分:0)

您提供的代码在这里可以正常工作。

也许您需要提供更多数据,例如inputs列表的内容和/或func函数的定义,以便我们重现该问题。

还要检查您正在使用的multiprocessing.cpu_count()调用的结果-在许多环境中,它通常无法正确确定内核数。