事實上,從手機到HPC,基本上任何一臺不用擔心在特定功率範圍內工作的計算機都是非常實用和重要的問題。我會盡量不要說你的耳朵。
作爲一般規則,您執行任務的速度越快越好。現代處理器中的電源管理在閒置時將內核置於睡眠狀態(有趣地稱爲Cx,其中x從1變爲n)。消耗更少功耗的方式是最大限度地提高內核在睡眠狀態下可以花費的時間。最好的辦法是儘快完成工作。
下面是一個例子:假設我們有一個雙核處理器。執行時(非空閒)每個內核消耗大約30W。當處於空閒狀態時,假設核心消耗5W。我假設P狀態(大多數現代處理器中的另一個電源管理功能)不存在。我們來看一個10秒的窗口。您在t = 0時開始執行您的應用程序。我們還假設您的應用程序受到計算限制,這意味着它不會阻止I/O或其他任何操作。案例A(OK):您的應用使用一個核心(core-0),另一個核心(core-1)不活動。因此,在這10秒間隔內,核心0使用30W並消耗300焦耳的能量。 (以焦耳爲單位的能量=以瓦特*爲單位的功率)。另一個核心是空閒的,只消耗5W或50J。所以總能量消耗是350J(10秒內35W)
情況B(壞):你的應用在兩個核心之間分裂10秒並且都不是空閒的。那麼你的總消耗是60瓦(每個核心30瓦),消耗600J。這是相當糟糕的。案例C(好):假設你做了一些智能多線程,並且可以通過在兩個內核之間分配線程來以4倍的速度執行你的應用程序。即使在今天,大多數代碼的線程很差,這是非常合理的。然後你可以在2.5秒內獲得30W的兩個核心,或225焦耳。這降低了近60%。
如果您正在處理移動電池壽命或爲數據中心供電,那麼能源使用量減少60%是一件大事。
我寫了很多關於從物理到實現的東西。如果您想了解更多信息,請查看https://software.intel.com/en-us/articles/list-of-useful-power-and-power-management-articles-blogs-and-references或使用您最喜愛的搜索引擎找到我。
感謝您的回答 – user2311649