草庐IT

diminishing

全部标签

python 多处理: no diminishing returns?

假设我想并行化一些密集型计算(不受I/O限制)。当然,我不想运行比可用处理器更多的进程,否则我会开始为上下文切换(和缓存未命中)付费。在心理上,我希望当我在multiprocessing.Pool(n)中增加n时,总时间会像这样:负斜率,因为任务利用了并行化正斜率,因为上下文切换开始让我付出代价高原但实际上,我得到了这个:#!/usr/bin/envpythonfrommathimportfactorialdefpi(n):t=0pi=0deno=0k=0forkinrange(n):t=((-1)**k)*(factorial(6*k))*(13591409+545140134*k)