我试图在一个简单的例子上运行并行循环.
我究竟做错了什么?
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)
Run Code Online (Sandbox Code Playgroud)
代码的问题在于,当在Python 3中的Windows环境下执行时,它会打开num_corespython实例来执行并行作业,但只有一个是活动的.这不应该是这种情况,因为处理器的活动应该是100%而不是14%(在i7-8个逻辑核心下).
为什么额外的实例没有做任何事情?