最適化というサイエンス

id:higepon さんに対する gauche の shiro さんのコメント。VM の最適化ではデータをとっているという話。
http://d.hatena.ne.jp/higepon/20080410/1207793027

さらに笹田耕一さんのコメント、
http://www.atdot.net/~ko1/diary/200804.html#d11
それから論文。
Schemeインタプリタにおける仮想マシンアーキテクチャの最適化 http://fw8.bookpark.ne.jp/cm/ipsj/search.asp?flag=6&keyword=IPSJ-TPRO4413006

Ruby仮想マシンYARVの実装と評価 http://fw8.bookpark.ne.jp/cm/ipsj/search.asp?flag=6&keyword=IPSJ-TPRO4702006


当たり前だけど、情報処理でもこのレベルになるとサイエンスそのものだなぁ。データを取って仮説を立てて検証する。
「情報処理でも」、というのは失礼か。

自分が知っているお客さんも、サイエンスの世界にいて、数値を良く使いこなしている。
はたで見ていると、100点満点の75点から85点くらいはどうころんでも取れるような仕組みをくみ上げて、
その後の15点をあわよくば取るために統計的処理を使う、という感じ。
興味深いのが、絶対値で評価するのではなく、必ずグラフにして傾向をみている。

上記の論文には(まだ読んでいないけど)命令の融合の回数と命令・オペランドの数というグラフがある。でもこれは論文のための完成型のグラフで、研究過程ではもっと沢山、グラフを書いていると思う。
あるいは、数値を見るセンスが抜群に優れているか、うまく重要な数値のみをしぼりこんでグラフにしなくてもいいようにしているか。

「あとは最適化で15点取れる」というまでの仕組みをくみ上げるのも凄い技術だけど、その後の最適化そのものを実際にやれるという技術も相当に重要な技術だ。ハイレベルな研究者、開発者が持っているその技術を目指したい。
でもなかなか、おもてにあらわれないんだよなぁ。