将多个内核分配给Python程序

将多个内核分配给Python程序,python,parallel-processing,cpu-cores,Python,Parallel Processing,Cpu Cores,我注意到,当我运行严重依赖CPU的python程序时,它只使用一个内核。当我运行程序时,是否可以将多个内核分配给该程序?您必须为多个内核显式编程。有关Python中的许多并行处理解决方案,请参见上的对称多处理选项。是一个很好的选择如果你不想比较这些选项,请看下面的例子 但有些问题无法利用多核。想想在三个朋友的帮助下,你怎么可能跑得更快。不会发生的 如果您的问题的任何部分都可以并行运行,那么您应该查看我想知道为什么还没有人提到CPython的GIL(全局解释器锁)。这基本上意味着一个Python解

我注意到,当我运行严重依赖CPU的python程序时,它只使用一个内核。当我运行程序时,是否可以将多个内核分配给该程序?

您必须为多个内核显式编程。有关Python中的许多并行处理解决方案,请参见上的对称多处理选项。是一个很好的选择如果你不想比较这些选项,请看下面的例子


但有些问题无法利用多核。想想在三个朋友的帮助下,你怎么可能跑得更快。不会发生的

如果您的问题的任何部分都可以并行运行,那么您应该查看我想知道为什么还没有人提到CPython的GIL(全局解释器锁)。这基本上意味着一个Python解释器中的多个线程不能使用多个内核的功能,因为为了线程安全,许多操作都受到全局锁的保护。这只适用于少量的应用程序——CPU受限的应用程序。要了解更多信息,只需搜索术语“GIL”,就已经有很多问题了(例如)

当然,这个答案假设您实际上正在使用多个线程,否则您将无法使用多个内核(这是另一种可能性)