python多进程固定

python多进程固定,第1张

概述我目前正在使用 python multiprocess来做一些简单的并行编程. 我使用异步装饰器 def async(decorated): module = getmodule(decorated) decorated.__name__ += '_original' setattr(module, decorated.__name__, decorated) de 我目前正在使用 python multiprocess来做一些简单的并行编程.
我使用异步装饰器

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一样做正确的核心固定

非常感谢,
标记

解决方法 如果apply_async(例如evalfunc)调用的函数很快完成,则可能无法使用池中的所有工作进程.

如果这确实是您的情况,那么您需要将更多数据传递给每次调用evalfunc,以便每个进程都有更多可以咀嚼的内容.

总结

以上是内存溢出为你收集整理的python多进程固定全部内容,希望文章能够帮你解决python多进程固定所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/langs/1196529.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-06-03
下一篇2022-06-03

发表评论

登录后才能评论

评论列表(0条)

    保存