我想进行并行计算并将结果返回到主线程。由于这种情况经常发生,我假设进程间消息传递的开销会影响性能(这个假设正确吗?),所以我想用线程。在
据我所知,只有使用jython或ironpython(哪个更好?)时,线程才会在不同的内核上运行。在
假设这是正确的-我所要做的就是将我的eclipse解释器切换到上面的一个?在
最后,我用的是numpy。这是个问题吗?jython/ironpython的实现会阻碍numpy的性能吗?在
我现在正试着按照下面的建议使用多进程。我在以一种整洁的方式传递参数时遇到了困难(也因为某些原因,当我停止应用程序运行打开的“不要关闭”进程,并且我必须重新启动计算机时!)。这就是我要做的:
pool = multiprocessing.Pool()
results = pool.map(my_class(param1=bla1, param2=bla2), list_args)
其中list_args是类my_类的__call__
函数的参数列表,bla1和bla2是numpy数组。在
查询:
池的默认值为cpu_count()。我想这是最好的?
为什么这样不行?(进程似乎不会返回…
我缺少一个包装所有东西的主函数。显然,这对多处理很重要。在
另外,如果您的进程正在使用的队列已满(它具有一定的容量),则会产生相同的效果,因此可以帮助更改代码,以便在添加项目时,允许同时从队列中提取项目。在
相关问题 更多 >
编程相关推荐