python - python 多处理硬件

标签 python pandas multiprocessing gpu xeon-phi

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

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

  • GPU 处理。从我读到的内容来看,我不确定是否能实现我想要的目标,并且无论如何都需要大量代码修改。

  • 至强融核。我知道它已经停产,但据说代码改编更容易,如果确实如此,我很乐意得到一个。

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

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

最佳答案

花了一段时间,但在将其全部更改为 numpy 并实现更多矢量化后,我成功地将速度提高了 20 倍以上 - 所以感谢 Paul。 max9111 也谢谢,我会研究一下 numba。

关于python - python 多处理硬件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55576373/

相关文章:

python - 从用户id获取用户名|不和谐.py

python - 通过索引将数据从一个数据帧插入到另一个数据帧中

python - 如何订购文本文件列 python?

python - 如何创建一个数据透视表,该数据透视表在包含重复条目的列上建立索引,这些重复条目应按另一列的值进行分组?

python - 如何以特定格式将文件作为参数传递给 Python 中的参数?

python - pandas 在行之间移动增量

python多处理池与进程?

Python - 语法错误 'Exception'

python - 定期运行三个函数 - 多线程?多处理?

python - Python 中多处理返回值的快速整形