python多处理的硬件

blue虫

我有一项任务,需要在许多不同的熊猫数据帧上运行相同的功能。我将所有数据帧加载到列表中,然后将其传递给Pool.map使用multiprocessing模块。功能代码本身已被尽可能地矢量化,包含一些if / else子句,并且没有矩阵运算。

我目前使用的是10核xeon,希望加快速度,最好从传递Pool(10)Pool(xxx)我看到两种可能性:

  • GPU处理。从我所阅读的内容中,我不确定是否可以实现我想要的目标,无论如何都需要大量的代码修改。

  • 至强皮 我知道它已经停产了,但是据说代码修改更容易,如果真的是这样,我很乐意得到一个。

我应该专注于哪条路?还有其他选择吗?

软体:Ubuntu 18.04,Python 3.7。硬件:X99芯片组,10核xeon(无HT)

帕维尔·科夫通(Pavel Kovtun)

您可以依靠新的Intel 2066平台或Xeon。使用最新的AVX512,它们大大加快了numpy的处理速度(numpy是熊猫的基础)。检查:https : //software.intel.com/zh-cn/articles/the-inside-scoop-on-how-we-accelerated-numpy-umath-functions

首先,尝试切换到基于numpy的计算(即使系列中使用简单的.value),也可以将处理速度提高10倍

您也可以尝试获得2个CPU主板,并获得更多的并行度进行计算。

在大多数情况下,瓶颈不是数据的处理,而是IO操作-从驱动器读取到内存。这也是使用GPU的问题。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章