我注意到當我運行我的CPU依賴性很強的python程序時,它只使用一個核心。我運行它時可以爲程序分配多個內核?將多個核心分配給一個Python程序
5
A
回答
12
您必須爲多個內核明確編程。有關Python中許多並行處理解決方案,請參閱this page上的對稱多處理選項。 Parallel Python是一個不錯的選擇,如果你不能比較其他選項,請看例子here。
雖然有些問題不能利用多核。想想你在三個朋友的幫助下如何能夠更快地跑上樓梯。不會發生!
4
如果您的問題的任何部分都可以並行運行,你應該看看multiprocessing module
4
我不知道爲什麼沒有人提到的CPython的GIL(全局解釋器鎖)呢。這基本上意味着一個Python解釋器中的多個線程不能使用多個內核的功能,因爲許多操作受全局鎖保護,以保證線程安全。這隻適用於少量應用程序 - 受CPU限制的應用程序。有關更多信息,只需搜索術語「GIL」,就已經有很多問題了(例如that one)。
當然,這個答案假定您實際上正在使用多個線程,否則您將無法使用多個核心(multiprocessing將是另一種可能性)。
相關問題
- 1. 將1個cpu核心分配給1個線程C++
- 2. 將線程分配給核心的API
- 3. 將一個事件處理程序分配給多個元素?
- 4. 將工作分配給多個核心:Hadoop或Scala的並行集合?
- 5. Python將多個返回值分配給多個列表
- 6. 如何將一個URL的請求分配給多個線程?
- 7. 如何在多核環境中將進程/線程指定給某個核心?
- 8. 一個包含多個Servlet的核心應用程序
- 9. CakePHP 3一個核心,多個應用程序
- 10. 如何擁有多個應用程序 - 一個核心數據?
- 11. 將核心分配給進程的好處
- 12. 將線程分配給特定的CPU核心
- 13. Erlang會自動爲多個核心和多個處理器分配線程嗎?
- 14. 將一個System.Action分配給一個BackgroundWorker
- 15. 在多個核心上運行python程序
- 16. 將cpu內核分配給進程 - Linux
- 17. Python:將分割值分配給多個變量
- 18. 將多個值分配給一個變量。這個怎麼用?
- 19. 如何將一個多行值分配給一個bash變量
- 20. PHP:將一個多維數組分配給一個會話
- 21. 在多個核心上運行Python
- 22. 如何在.NET核心分配剃刀查看另一個應用程序
- 23. 使用一個核心(CakePHP的)配置多個網站
- 24. 多線程 - 線程每個核心
- 25. Python 3將2個值分配給一個變量
- 26. 什麼是一個好的多核心64位「Hello World」程序?
- 27. OpenMP將一個函數的執行分配給一個線程?
- 28. 一個值分配給形狀,在Python
- 29. iPhone - 使用NSFetchResultsController將核心數據分解爲多個部分
- 30. 將多個用戶分配給「任務」