昔の論文らしい
http://www.il.is.s.u-tokyo.ac.jp/~ishikawa/paper/sies07.pdf
スケジューラは各プロセスのI/O利用量とかの情報を持っていて、そういうプロセス毎の動作のパターンを見て動作を変えられる。その細かい情報を電力制御モジュール (DVFS) に「プロセス切替時に」渡しましょう、という話。切り替え頻度が非常に細かい状況だとそのボトルネックも心配ですけど、試したCPUではスペック上も実験上もオーバーヘッドは小さいですね、という。たしかそういう。
周波数に対して速度が大体線形的なのに対して電力消費量は2乗なのでバッテリー消費が気になるやつは上の情報から「コンパイルのプロセスは遅くしてーな」って設定出来る、みたいな話でもあった。つまり出先でノートPC広げてる時のコンパイル動作をローカルでやるならそれは遅くて良いね、という話。ついでに言うとそれが分かるのならコンパイル中でもユーザインタラクションの責任を持ってるプロセスの優先度はあげられるよね、ということになり、だからそっちを優先すればコンパイル中にブラウザ固まるぐぬぬ、がなくなる。というか最後のはしばらくして別の誰かが考えたのだか、多分今のKernelに実際にもう入ってる。上の論文にその話が盛り込まれてるかは忘れた。
実装ミスるとOSの根っこからぶっとぶので、ドライバのその機能を有効にした瞬間、ターミナルが改行すら表示することなく、キーを押したその時のまま世界が固まって「あじゃーん」ってなるのがある意味ハイライトであった。
スケジューラは各プロセスのI/O利用量とかの情報を持っていて、そういうプロセス毎の動作のパターンを見て動作を変えられる。その細かい情報を電力制御モジュール (DVFS) に「プロセス切替時に」渡しましょう、という話。切り替え頻度が非常に細かい状況だとそのボトルネックも心配ですけど、試したCPUではスペック上も実験上もオーバーヘッドは小さいですね、という。たしかそういう。
周波数に対して速度が大体線形的なのに対して電力消費量は2乗なのでバッテリー消費が気になるやつは上の情報から「コンパイルのプロセスは遅くしてーな」って設定出来る、みたいな話でもあった。つまり出先でノートPC広げてる時のコンパイル動作をローカルでやるならそれは遅くて良いね、という話。ついでに言うとそれが分かるのならコンパイル中でもユーザインタラクションの責任を持ってるプロセスの優先度はあげられるよね、ということになり、だからそっちを優先すればコンパイル中にブラウザ固まるぐぬぬ、がなくなる。というか最後のはしばらくして別の誰かが考えたのだか、多分今のKernelに実際にもう入ってる。上の論文にその話が盛り込まれてるかは忘れた。
実装ミスるとOSの根っこからぶっとぶので、ドライバのその機能を有効にした瞬間、ターミナルが改行すら表示することなく、キーを押したその時のまま世界が固まって「あじゃーん」ってなるのがある意味ハイライトであった。