X86:频率、架构或其他因素对计算快速和大量的 python/numpy 循环重要吗?

X86:频率、架构或其他因素对计算快速和大量的 python/numpy 循环重要吗?

我们需要计算运行数天的 numpy/python 脚本,因为它们使用大量循环来计算小型 Numpy/Python 浮点数组(某个 Mo 的数组)。操作是逐行执行,然后逐行执行,等等。

我很惊讶地发现,AMD APU A10-5700 @ 3.4 比 Xeon X5650 @ 2.7 ghz 计算此类脚本的速度更快(约 25%)。速度与 CPU 频率比成正比。

什么样的 CPU 属性对于计算这种脚本很重要?我是否必须只使用高频率的 CPU 来完成这种任务?感谢您的回答。

编辑:数组上的操作仍使用 pp 进行并行化,但没有使用 GPGPU(如 opencl)。所以我的问题适用于每个 CPU 单元的单个线程。

答案1

除非你对你的 Python 脚本使用了多线程方法,否则任何具有更快时钟和单线程性能的 CPU 最终都会比围绕使用多线程但单线程性能较慢的应用程序设计的 CPU 表现得更好。

获得更好性能的最佳方法是重写 Python 脚本,尽可能利用多线程(注意并发性)。否则,寻找具有非常高的单线程性能的 CPU

答案2

这更多剧本是怎么写的- 如果它不是并行的,那么拥有多个核心也无济于事,你只是以不同的时钟速度执行相同的指令。如果你能找到一种方法将负载分摊到逻辑处理器上,那么多核处理器架构就有更好的机会。

相关内容