未来のいつか/hyoshiokの日記

hyoshiokの日々思うことをあれやこれや

未踏の公募がはじまった

2009年度上期未踏IT人材発掘・育成事業の公募がはじまった。未踏ユース(25歳未満)、未踏本体それぞれ詳細は上記URLを参照してほしい。

わたし自身2002年度の未踏に採択されたプログラマ、いわばOBであるので若干の思い入れもあるし、ひょんなことからIPAの中の人になっちゃったものだから、個人的にもいろいろ応援したいところである。ただし、IPAと言っても、わたしの所属はオープンソフトウェア・センターなので、業務として未踏事業に関与しているわけではないことをあらかじめおことわりしておく。あくまで個人的な見解である。

未踏のおもしろさというのは、9ヶ月くらい、開発に没頭できる環境を提供してもらうことだ。クレージーなアイデアを実装する期間として、このくらいの時間は必要だし、一方で、開発費として人件費をもらえるので、霞を食っているわけではないので、これは大変ありがたい。

未踏でわたしが何をやったかということは、既に何回も書いたので、そちらを参照してもらうとして*1 *2 *3 *4、未踏のおかげで、わたしはIntel CPUにおけるキャッシュミスの動きにたいして深い理解を得たし、その結果として、Cache Pollution Aware patchというハックを作る事ができた。*5 もちろん、未踏に応募したときに、そちらの方向に理解が深まって、linux kernel patchを作れるとは思ってもいなかった。ただし、自分の思惑(おもわく)として、linux kernelで何かをやってみたいと言う思いがあって、平たく言えばカーネルハッカーになりたくて、そのためには素人の自分でも使える、カーネルレベルでのhardware profilerが必要だなと思っていた。それが未踏で開発したhardmeterというソフトである。自分の強い思い=カーネルハッカーになりたい、それを実現するために道具が必要だ、だから道具を作った(hardmeter)というストーリーである。*6 *7

未踏という事業の性格上、プロジェクトマネージャ(PM)が面白いと思えば採択されるし、どんなに新規性、独創性があろうと、PMが面白いと思わなければ採択されない。これが委員会形式の採択委員会で平均点の高いものから採択というプロセスと著しく異なる。委員会形式であれば、時代の空気を読んで、昨今の流行り言葉をちりばめた美味しい提案書を書けばいいのであるが、PM方式は、PMの心に響くものでなければ採択されない。

基盤系の最も地味なところ、キャッシュについての便利な道具を作った。これだけっちゃあこれだけである。後にlinuxにはoprofileというプロファイラーが標準採用されたのだが、現時点でもhardmeterが実装したPEBS (Precise Event Based Sampling)の機能が実装されていない。oprofileでキャッシュミスを計測することは出来る。プログラムのどの場所でキャッシュミスが多発しているか簡単に発見できる。実際*8 *9 で示したように、簡単にキャッシュミスを発見できる。しかし、oprofileでは、どのメモリへアクセスした時にキャッシュミスが発生したかは特定できない。メモリへのアクセスパターンによって、キャッシュミスが発生するパターンが知られていて、それぞれ別の対処方法があるのだが、キャッシュコンフリクトというキャッシュミスについて簡単に発見できないのである。hardmeterでは、キャッシュミスが発生した時点のレジスタの値を記録するので、ソースコードとつきあわせれば、どのアドレスにアクセスしていたかが一目瞭然なのである。

てなことを朝から晩までやっていて、それのどこが楽しいのか、と問われれば、楽しいんだよ、何か。という世界である。CPUの奥深いところの動きが原子顕微鏡のように見えてワクワクするのである。何かをするために原子顕微鏡を作ったのであるが、原子顕微鏡そのものを作るのがとっても魅力的だったというようなお話である。

しかもだ。基盤系の問題は、難しい問題が多くて、それらは未解決だったりする。そう。解かれるべき問題に満ちているのだ。本当だよ、いっぱい面白い問題がある。

今後、CPUコアの数がどんどん増えていくことが予想される。CPUコアが増えていったとき、キャッシュミスもそれに比例して増加するが*10、それを防止するには、どうしたらよいのか。コンピュータサイエンスを専攻している学生なら誰でも理解できる問題だと思う。だったらチャレンジしろよ。

今後、CPUの電力消費が問題になってくると予想される。省資源型のプログラミングアルゴリズムとは何か。rubyの実装で示せ。別にrubyじゃなくてもいいけど、アルゴリズムの有効性を示すために実装してね、というような感じである。

例えば後者の問題ならば、電力消費量をミクロに測定するツールおよびベンチマークを製作するというアプローチをわたしなら取る。どのようにすれば、それが測定できるかは、ちょっとしたサーベイが必要で、ひょっとしたら、Intelとかチップベンダーの協力が必要かもしれないけど、不可能な話ではない。ベンチマークの設定は結構難しい問題ではあるが、これもコミュニティのチカラを借りれば、困難ということもない。

基盤系(OSやらRDBMSやら言語処理系やら)の地味な問題というのは、未解決な問題が多数あって、しかも、その解決には時間がかかるから、直ぐに陳腐化するというものでもない。実際hardmeterを作って6年以上たつのにPEBSを利用したプロファイラは実装されていない。(じゃあ、おまえ実装しろよ、とか言われちゃうが、ごめんなさいごめんなさいごめんなさい)

上の方ではなく下の方にはブルーオーシャンが広がっていると思う今日この頃である。

わたしが未踏のPMだったら、基盤系の問題にがっつり取り組んだ応募を支援したいと思う。本当にそう思うよ。あくまでも個人的見解なので、ご注意を。

ネットの言論ってなんだろう

日々、この日記で、どーでもよいヨタ話を書き散らしているわけだけど、まあ、それは置いておく。プロのジャーナリストが、時間とカネを使って書いた、プロ原稿と、アマチュアが自分の時間と自分のカネを使って書いたアマチュア原稿と、どちらに軍配があがるか、とかソーユー話でもない。

書くことの難しさ ネットの言論はなぜ質が低いか http://it.nikkei.co.jp/internet/news/index.aspx?n=MMIT11000026032009
新聞に比べるとネット言論の質は低い――。もはや一部の新聞社幹部や研究者ぐらいしか言いそうもないことをあえて指摘してみたい。ブログやSNSに代表されるソーシャルメディアの登場によって誰もが情報を発信できるようになり、ネット上のコンテンツは膨大になった。だが、その質はネットユーザーが批判する既存メディアにとうてい及ばない現実もある。メディアを持つことで満足するフェーズはそろそろ終わりにして、質を上げる取り組みについて議論すべきではないか。

日記とかブログはカネを儲けるために書いているわけではない。それによって生活費の足しにしようとして書いているわけではない。その意味でわたしはアマチュアである。時々、ウェブ連載や、原稿を依頼されて書くこともあるが、原稿料を貰ったとしても、それが主たる収入ではないので、アマチュアであることにはかわりはない。

では、アマチュアの書くことにまるで意味がないかというと(そんな事は誰も言っていないけど)、もちろんそんなことはない。どんな書きものにチカラがあるか、それは何か。

自分とその周辺のことだと思う。

人生の三分の一は仕事をして、三分の一は寝て、三分の一は、その他にあてるとする。仕事の事というのは、その人の人生の少なくとも、三分の一の成分でできていて、うまくいくこともうまくいかないことも、成功も失敗もいっぱいあると思う。そして、その成果に世界で一番興味を持っているのは自分だし、それに世界で一番つきあっているのも自分だし、一番愛しているのも自分だし、ひょっとしたら世界で一番憎んでいるのも自分だ。

ドキュメンタリーで長期密着取材なんてので、日常生活やらなにやら、成功した人のプロジェクトを紹介したりする企画があるが、自分で自分のストーリーを取材すれば、長期密着どころではない裏も表も全て知りつくしたモノができあがる。

そのプロジェクトの裏も表も全て知りつくした自分が自分の言葉で書く。世界で一番愛のこもった言葉で書く。世界で最もそれにコミットしている人が書くストーリーは、その人にしか書けない。どんなジャーナリストをつれてこようが、一次情報としての自分という素材を、ナマで表現する自分には勝てるわけがない。

自分の内面の言葉を聞けるのは自分しかいない。他人にはウソを言っても、自分の心を騙すことは難しい。

一体、おもしろおかしくもない、そんな自分のストーリーを誰が読むのか、とあなたは言うかもしれない。いいじゃないか、例え、世界中の誰も読まないとしても、そのストーリーに興味を持つ人が世界でたった三人だったとしても、誰かが、未来のいつか、あなたのストーリーを発見し、涙を流すかもしれないし、心を癒されるかもしれない。そんな瞬間がくればもうけものではないか。そして、わたしは知っている。世界に三人いるその一人が、未来の自分なのである。

自分にしか語りえない一次情報を発信しよう。わたしは、わたしにしか書けない物語を書き続けたい。そして、わたしは、あなたの物語を読みたい。強くそう思う。