
我使用异步装饰器
def async(decorated): module = getmodule(decorated) decorated.__name__ += '_original' setattr(module,decorated.__name__,decorated) def send(*args,**opts): return async.pool.apply_async(decorated,args,opts) return send
然后
@asyncdef evalfunc(uID,start,end): veckernel(Posx,Posy,Posz,Quant,Delta) return (uID,GrIDVal)def runit(outdir): async.pool = Pool(8) results = [] for uID in range(8): result = evalfunc(uID,Chunks[uID],Chunks[uID+1]) results.append(result)
如果我在8处理器或8核机器上运行它,它基本上只使用两个核心.这是为什么?有没有办法像pthreads一样做正确的核心固定?
非常感谢,
标记
如果这确实是您的情况,那么您需要将更多数据传递给每次调用evalfunc,以便每个进程都有更多可以咀嚼的内容.
总结以上是内存溢出为你收集整理的python多进程固定全部内容,希望文章能够帮你解决python多进程固定所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)