Python 无法在linux中使用所有CPU核心
我试图利用CPU的所有核心,对于NumPy,我能够使用所有核心,但是当我在pandas中执行某些操作时,它再次使用CPU的一个核心。我试着设置最大线程和其他参数,但没有任何效果 例如Python 无法在linux中使用所有CPU核心,python,pandas-groupby,mathematical-optimization,numexpr,Python,Pandas Groupby,Mathematical Optimization,Numexpr,我试图利用CPU的所有核心,对于NumPy,我能够使用所有核心,但是当我在pandas中执行某些操作时,它再次使用CPU的一个核心。我试着设置最大线程和其他参数,但没有任何效果 例如 当系统执行Numpy操作时,CPU占用了大部分内核的时间,但当涉及到pandas时,一切都在单个内核上运行。pandas的groupby是用纯python实现的(请参阅),并且受到CPython的GIL(全局解释器锁)的限制,只能执行单线程。库可以选择自己处理线程安全,并在密集计算期间释放GIL,或者运行可能产生“
当系统执行Numpy操作时,CPU占用了大部分内核的时间,但当涉及到pandas时,一切都在单个内核上运行。pandas的groupby是用纯python实现的(请参阅),并且受到CPython的GIL(全局解释器锁)的限制,只能执行单线程。库可以选择自己处理线程安全,并在密集计算期间释放GIL,或者运行可能产生“不受限制”线程本身的本机代码
您可以尝试在没有GIL的IronPython上运行您的代码,但看一看Pandas的代码,我没有看到任何线程,因此我不确定它是否会有帮助。这是否回答了您的问题?
def a(x):
#### # performing a lot of operations and checks.
## df.groupby(column_A).apply(a).reset_index()