CPU Ondemand 並非萬能。最重要的例子就是 Android 4.1 的 CPU input boost (Touch Event),在接收 Touch Event 時,提高 CPU 的運算效能。
延伸 Android 4.1 的 CPU input boost。我們也可以讓應用程式享用 CPU Boost 功能。根據使用者目前的操作,將 CPU Boost,讓使用中的應用程式,衝到最高的效能。Boost 有點像是「猛衝」的感覺,可以在這個時刻讓使用者享受高效能的應用程式。
筆者目前參與開發中的 Phonesmpd 軟體,符合了這樣的設計想法。
CPU On-Demand 到處都適用嗎?
由於 Android Process Model 與典型的 GNU/Linux 有些不同,CPU Ondemand 的方式並不一定能使用在所有的 Use Case。有鑑於此,筆者過去進行了一些研究,並將成果整合進 Phonesmpd 軟體,讓多核心技術,除了 CPU Ondemand 外,還有另一個更符合手機裝置的選擇。Phonesmpd 現階段的成果,可參考 Moko365 網站:
http://www.moko365.com/enterprise/phonesmpd
至於 CPU Ondemand 的使用時機為何?筆者認為,應該是從應用程式的角度來考慮。當一個應用程式,本身是平行化的設計時,或許它就不太適合 CPU Ondemand 的做法。
通常平行化的設計,是以 Data Partitioning 的方式,將資料分散至不同處理器上計算後,再經由 Shared memory 合併回來。這就是平行處理 (Parallel Computing) 在討論的技術。所以平行處理是多核心軟體的根本。
在進行 Data Partitioning 時,有時也會將任務 (Task) 與 CPU 事先指派好,這時就不太需要 CPU Ondemand 了。多核心手機目前還是一個需要細部研究的領域。
(本文經仕橙部落同意轉載,作者為仕橙研策技術總監暨CTIMES專欄作者)