为 Python 程序分配多个内核

发布于 2024-10-09 02:34:52 字数 69 浏览 9 评论 0原文

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

I notice when I run my heavily CPU dependant python programs, it only uses a single core. Is it possible to assign multiple cores to the program when I run it?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

愿与i 2024-10-16 02:34:52

您必须为多核显式编程。请参阅本页上的对称多重处理选项,了解 Python 中的许多并行处理解决方案。如果您懒得比较选项,并行 Python 是一个不错的选择,请查看示例此处

但有些问题无法利用多核。想想你如何在三个朋友的帮助下更快地跑上楼梯。不会发生的!

You have to program explicitly for multiple cores. See the Symmetric Multiprocessing options on this page for the many parallel processing solutions in Python. Parallel Python is a good choice if you can't be bothered to compare the options, look at the examples here.

Some problems can't take advantage of multiple cores though. Think about how you could possibly run up the stairs faster with the help of three friends. Not going to happen!

命硬 2024-10-16 02:34:52

我想知道为什么还没有人提到 CPython 的 GIL(全局解释器锁)。这基本上意味着一个 Python 解释器内的多个线程无法使用多核的功能,因为许多操作都受到全局锁的保护以保证线程安全。这仅适用于少量应用程序 - CPU 密集型应用程序。有关更多信息,只需搜索术语“GIL”,已经有很多关于它的问题(例如 那个,例如)。

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

I wonder why nobody mentioned CPython's GIL (Global Interpreter Lock) yet. It basically means that multiple threads inside one Python interpreter cannot use the power of multiple cores because many operations are protected by a global lock in order to be thread-safe. This only applies to a small amount of applications - the CPU-bound ones. For more info, just search for the term "GIL", there are already many questions on it (like that one, for example).

This answer of course assumes that you are in fact using multiple threads, or else you won't be able to use multiple cores anyway (multiprocessing would be another possibility).

暖阳 2024-10-16 02:34:52

如果您的问题的任何部分可以并行运行,您应该查看多处理模块

If any part of your problem can be run in parallel, you should look into the multiprocessing module

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文