Skip to Main Content
高效能PYTHON程式設計
book

高效能PYTHON程式設計

by Micha Gorelick, Ian Ozsvald
August 2015
Intermediate to advanced content levelIntermediate to advanced
384 pages
7h 42m
Chinese
GoTop Information, Inc.
Content preview from 高效能PYTHON程式設計
multiprocessing 模組
|
221
隨時間變化的 CPU 利用率
CPU
4
4
時間(秒)
9-5 使用 Python 物件與 4 個行程估計 pi
如圖 9-6 所示,即使換成 8 個行程,也只能夠比 4 個行程的版本多出極小的效能提升,
那是因為 4 個超執行緒只能從 4 個實體 CPU 上的閒置資源中擠出一點額外的處理能
力,而 4 個實體 CPU 都已經被充分利用了。
這些圖形顯示,我們一步一步有效率地使用更多可用的 CPU 資源,然而,超執行緒的
效果並不好。使用超執行緒的最大問題是 CPython 使用許多 RAM —超執行緒機制並非
快取友善的(cache-friendly),所以每個晶片上的閒置資源非常不好被利用。如下一節
所示,
numpy
會比較妥善地運用這些資源。
根據我們的經驗,
如果
有足夠的閒置計算資源,超執行緒機制能夠提升
30% 的效能。例如,如果你的計算混合浮點數與整數運算,而不是像這
裡的純粹浮點數運算,超執行緒機制就能夠提升效能。透過混合資源需
求,超執行緒能夠安排更多 CPU 資源並行運作。一般而言,我們把超執
行緒視為額外的紅利,而非最佳化的對象,因為增加更多 CPU 可能比調
整你的程式碼(增加開發與支援成本)更為經濟。
222
|
第九章
隨時間變化的 CPU ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Start your free trial

You might also like

流畅的Python

流畅的Python

Luciano Ramalho
手把手教会你linux

手把手教会你linux

桑德.范.乌格特

Publisher Resources

ISBN: 9789863477105