gpt4 book ai didi

python - 如何运行在多核上使用 numpy 的 python 程序,最好使用线程

转载 作者:太空宇宙 更新时间:2023-11-04 06:15:01 24 4
gpt4 key购买 nike

我想做并行计算并将结果返回给主线程。由于这已经做了很多次,我认为处理消息的进程开销会影响性能(这个假设正确吗?),所以我想使用线程。

据我了解 - 只有当我使用 jython 或 ironpython(哪个更好?)时,线程才会在不同的内核上运行。

假设这是正确的 - 我所要做的就是将我的 eclipse 解释器切换到上面的解释器之一?

最后,我使用了 numpy。这是个问题吗? jython/ironpython 的实现会影响 numpy 的性能吗?

更新:

我现在正尝试按照以下建议使用多进程。我在以简洁的方式传递参数时遇到了问题(也出于某种原因,当我停止应用程序运行时,打开的进程不会关闭,我必须重新启动计算机!)。这就是我想要做的:

pool = multiprocessing.Pool()
results = pool.map(my_class(param1=bla1, param2=bla2), list_args)

其中 list_args 是类 my_class 的 __call__ 函数的参数列表,bla1 和 bla2 是 numpy 数组。

查询:

  1. 池的默认值为 cpu_count()。我认为这是最优的?

  2. 为什么这不起作用? (进程似乎没有返回...)

最佳答案

我缺少一个主要功能来包装所有内容。显然这对于​​多处理很重要。

def main():
run_my_stuff()

if __name__ == "__main__":
main()

此外 - 如果您的进程正在使用的队列已满(它具有一定的容量),可能会导致相同的效果,因此它可能有助于更改代码,以便它允许同时从队列中提取项目它们被添加。

关于python - 如何运行在多核上使用 numpy 的 python 程序,最好使用线程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16291174/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com