不能在 Pandas Linux 中使用 CPU 的所有内核



我正在尝试利用CPU的所有内核,对于NumPy,我可以使用所有内核,但是当我在熊猫中执行某些操作时,它再次仅使用CPU的一个内核。我试图设置最大线程和其他参数,但没有工作对我不利。

例如,

def a(x):
#### # performing a lot of operations and checks. 
## df.groupby(column_A).apply(a).reset_index()

当系统执行 Numpy 操作时,此时 CPU 占用了大部分内核,但是当涉及到熊猫时,一切都在单个内核上运行。

Pandas 的 groupby 是用纯 python 实现的(参见源代码(,并且受 CPython 的 GIL(全局解释器锁(限制为单线程执行。库可以选择自己处理线程安全并在密集计算期间释放 GIL,或者运行可能生成"无限制"线程本身的本机代码。

您可以尝试在没有GIL的IronPython上运行代码,但是看了一眼Pandas的代码,我没有看到任何线程,所以我不确定它会有所帮助。

相关内容

  • 没有找到相关文章

最新更新