簡體   English   中英

為Python程序分配多個內核

[英]Assigning Multiple Cores to a Python Program

我注意到當我運行高度依賴CPU的python程序時,它僅使用一個內核。 運行該程序時是否可以為其分配多個內核?

您必須為多個內核進行顯式編程。 有關Python中許多並行處理解決方案的信息,請參閱此頁面上的“對稱多處理”選項。 如果您不願意比較這些選項,那么並行Python是一個不錯的選擇,請查看此處的示例。

但是,有些問題不能利用多核。 考慮一下如何在三個朋友的幫助下更快地上樓梯。 不會發生!

如果您的問題的任何部分都可以並行運行,則應查看多處理模塊

我想知道為什么還沒有人提到CPython的GIL(全局解釋器鎖)。 從根本上講,這意味着一個Python解釋器中的多個線程無法使用多個內核的功能,因為許多操作均受全局鎖保護以確保線程安全。 這僅適用於少量應用程序-受CPU限制的應用程序。 有關更多信息,只需搜索術語“ GIL”,就已經有很多問題(例如類似的問題)。

這個答案當然是假設您實際上正在使用多個線程,否則您將無法使用多個內核( 多處理是另一種可能)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM