我有一个蟒蛇熊猫计划。当我在带有8个核心的AWS Ec2上运行时。我得到100%的CPU利用率和程序在8分钟内完成。然后,如果我去16个核心,我只能得到50%的CPU利用率和程序仍在8分钟内完成。我怀疑它碰到了内存带宽瓶颈,所以我选择了X1,16 x大型实例,它有64个核心,内存带宽为300‘t/S,但是没有帮助。该程序使用了64个核心中的一个很小的百分比,甚至在10分钟后也没有完成。ec2 X1实例
知道怎么回事吗?
(顺便说一句,在我的老台式塔上运行的同一个程序有4个核心,16分钟就完成了。)
更多细节:该程序使用GridSearchCV,然后使用强权b并行运行多个处理。进程数总是等于系统中的核数。
发布于 2018-03-22 19:28:25
Python有一个“全局解释器锁”,这限制了它高效利用多个线程的能力。这个站点上有一个已响应,您应该考虑用C/C++编写时间关键函数。
如果可能,考虑将分析分解为较小的块,然后将它们作为单独的进程运行,以避免全局解释器锁定问题。
https://serverfault.com/questions/903961
复制相似问题