【发布时间】:2016-02-20 15:19:26
【问题描述】:
我正在尝试在一个简单的示例上运行并行循环。
我做错了什么?
from joblib import Parallel, delayed
import multiprocessing
def processInput(i):
return i * i
if __name__ == '__main__':
# what are your inputs, and what operation do you want to
# perform on each input. For example...
inputs = range(1000000)
num_cores = multiprocessing.cpu_count()
results = Parallel(n_jobs=4)(delayed(processInput)(i) for i in inputs)
print(results)
代码的问题在于,当在 Python 3 中的 Windows 环境下执行时,它会打开 num_cores 的 python 实例来执行并行作业,但只有一个处于活动状态。这不应该是这种情况,因为处理器的活动应该是 100% 而不是 14%(在 i7 - 8 逻辑内核下)。
为什么额外的实例没有做任何事情?
【问题讨论】:
-
您是否收到任何错误消息?它对我来说运行良好......缩进应该是 4 个空格而不是 1 个...
-
我也有同样的问题。问题是代码只在一个核上运行,而不是在 n 核上。
标签: python windows parallel-processing joblib