グリーンITとはなんぞという話ですが、多分のハードに沿った話が殆どで、ソフトは忘れ去られています。ITの効率は電力消費を測るということになるわけですが、ソフトとエネルギー効率というのは殆ど語られません。ソフトのエネルギー効率というと
- パラレル・コンピューティング
- 設計・モジュール化
- Interpretiveかコンパイル型
- 性能か利便性か
- 最適化
マルチコア化するプロセッサを利用するためには、パラレル・コンピューティングを展開する必要がありますが、現在は殆どの場合OS以外はマルチ・プロセッサを利用していません。今後このインフラを利用する必要があります。しかし、パラレル・コンピューティングは人間にとっては難しいようです。deterministicな動作がいつもあるのではないので、中々これをマスターするのは難しいでしょう。
設計に関しては、SMTPなどのようにモジュール化していない大きなコードは、実行時に全てのプログラムをメモリーに移動する必要がありますが、一度に全部をメモリーにいれるわけに行かないので、スワップやページ移動で、全体の実行スピードが落ちます。モジューロ化していれば、必要な部分のみメモリーに移動することで、実行速度が速くなります。
Interpretiveの言語は簡単で使いやすいですが、実行のためにハードに依存することが多く、実行速度も遅くなります。電力消費だけを見れば、コンパイル言語の方が効率が良いでしょう。しかし、Interpretive言語の方がバグが少ないかも知れません。デバッグの時間も考慮すると、必ずしもどちらが良いとははっきり言えません。これは、#4にも通じます。
最適化はコンパイラーなどの自動ツールや自動的にパラレルに実行できるように変換するよう方法が必要となってくるでしょう。
大体、こういうとを全部網羅して、グリーンなソフトの指標は作れるんでしょうか?
原文
ここ。