2009年10月14日

Underhanded C code contest 2008

結果が発表されました。
問題:
http://underhanded.xcott.com/?page_id=5
結果:
http://underhanded.xcott.com/?p=12
今年の1位は一見の価値有りです。シンプルで、短く、美しく、そして邪悪です。
posted by chun at 15:41| 日記

2009年09月12日

ICFP-PC 2009 INTERCAmL

ICFP PC 2009 Intercaml source codes
This is our team's submission for 2009 (Yay, I haven't noticed that none of us uploaded it)

Some points to look at:

  • No OCaml / CAML-light (team-name fraud)
  • Spaghetti-ness (yeah what a mess!)
  • Many hard-coded constants
  • Some unused but not deleted codes
  • Copy-and-paste everywhere ("as usual")
  • include/ovm.hpp:203-205, "anti-moon" thrust
  • solutions/clearsky/circular.cpp:713, reversing direction after moving to higher orbital
  • solutions/clearsky/circular.cpp:718, disabled routine for "Apollo program"
  • private/phoenix/visualfate.jar, visualizer

.. and two critical bugs we should have removed before submissions!

Usage:
for 4001- problems, just
% make
% cd solutions/clearsky
% ./makeall.sh
and we get the results.

Sources:
intercaml-source.tar.gz
posted by chun at 12:41| Comment(0) | 日記

2009年09月04日

PFI退職

8月末を持ってPreferred Infrastructureを退職しました。スタートアップで働くというのは貴重な経験でした。それにしても、未だになぜ会社が存続できたのか謎です。あのタイミングでアレが起こらなかったら潰れていたと思う、というイベントが少なくとも2回ありました。今では良い(怖い?)思い出です。辞めた理由とかは飲み会の機会にでも聞いてください。
posted by chun at 08:08| 日記

2009年08月29日

4年後にこれを見返して笑っていられると良いな

(政治ネタが嫌いな人はブラウザタブ/RSSリーダ等をお閉じ下さい)

今回の選挙は左派党が圧勝すると私は予想しています。しかし、マニフェストを見ているとこの次の選挙が心配です。
不況が長引くとどうしても民衆の意見が先鋭化し、極右・極左政党への支持が高まります。今回は左派さんが政権を取ることになりますので、経済政策に失敗したりすると極右政党が支持されることになります。「美しい日本を取り戻す」「不況は外国人のせいだ」……なんて第2のNSDAPが出ないと良いのですが。左派さんの経済政策に期待したいところです。
posted by chun at 09:42| 日記

2009年08月03日

デスマ怖い

スコアが残っただけ良かったと思おう。うむ。
来年は出来るだけペアプロしよう……。
posted by chun at 08:58| 日記

2009年07月15日

研究

ここ3ヶ月で一番興奮する内容に出会った。これはすごい。
posted by chun at 11:17| 日記

2009年07月02日

専攻の講義で

アルゴリズムとデータ構造を扱わなくなったらしい。
Perlで正規表現でもにゅもにゅとかそういうのに変わったらしい。
Suffix ArrayとかPQ-treeとかは研究室でやるからいいやっていう判断なんですかね。
もしかして明らかに修論発表でSA分かってない人がいたのはそれのせい?(「それSuffix Arrayでできるよ」)

もうbioinformaticsという名前の下に呉越同舟するのやめていーんじゃねーかな……と思う俺。
posted by chun at 14:02| 日記

2009年06月30日

ICFP-PC2009参加記録

ICFP-PC 2009に参加してました。

1日目

  • 問題発表。
  • いきなり問題の趣旨を壮絶に勘違いする俺。
  • Phoenix & nyaがそれぞれ独自にVMを作る。
  • 12時ぐらいにオンラインでメンバー集合、nyaさんがここから参加。Phonix君は一旦離脱。
  • みんなでwikipedia://楕円軌道 wikipedia://Hohmann_transfer_orbit wikipedia://ケプラーの法則 wikipedia://アポロ13号とかを読む。「まず最初に変更履歴調べますよね」
  • GusさんがHohmann遷移を書き始める。NyaさんがVMまわりを整備し始める。俺はJavaでvisualizer書き始める。Java使い慣れてないので大変。
  • 俺の大会通じての最大の功績はこのvisualizerで時期の名前をFateに定着させたこと
  • 「thrustの向きが逆?」
  • 「[2009/06/27 15:41:33] gusの発言: 2002以外すべて二秒後に位置が合いますよと出る」
  • Phonixが戻ってきたのでVisualizerバトンタッチ。餅は餅屋!
  • Meet-n-greetはgus / nyaが達成してくれることを仮定して、俺はeccentric meet'n'greetを「meet-n-greetができるならどうするか」で考え始める。
  • 「[2009/06/27 17:50:03] nyaの発言: Hohmannで初速をてきとーに1.1倍とかにしたらスコアがあがった!」
  • 「[2009/06/27 20:06:28] nyaの発言: 2001,2003,2004をクリア!!!」
  • 「[2009/06/27 23:05:54] gusの発言: 一問目はfuelを使ったほうが点数が上がりますとか書いてある」
  • 「[2009/06/28 1:10:22] nyaの発言: てきとーなぷろぐらむで 3001,3003,3004が ・・・ これはゆめでしょうか」
  • 「[2009/06/28 1:33:36] chunの発言: score = 371.242852
    [2009/06/28 1:33:36] chunの発言: 3001通った」
  • 「[2009/06/28 1:42:32] nyaの発言: 2位・・・だと・・・!」

このスコアリストで大いに盛り上がりました。

2日目

  • 月やばい月
  • 「[2009/06/28 3:06:14] phoenixの発言: 我が家の奥様は「実家に帰らせていただきます!」状態なので」
  • 「英語でおk」(documentation fixに対して)
  • みんなでVisualizer更新・autofollow更新・VM+周辺ツール作成+TAS-san(VMを複製して超絶テクニック回収を達成するコード)を更新
  • 「[2009/06/29 0:53:06] phoenixの発言: あ、ちなみに、VisualFateはデータ読む部分を高速化したので、数Mくらいなら一瞬です。いぇぃ。」
  • 「[2009/06/29 2:37:34] phoenixの発言: 3つ回収できました。 でぶりです@4001」

3日目

  • 「[2009/06/29 12:30:53] nyaの発言: うおおおおお
    [2009/06/29 12:31:03] nyaの発言: 9つとれたっぽい!
    [2009/06/29 12:31:09] phoenixの発言: おおおおおおおお」
  • 「ザクには大気圏突入の装備はないんだ」
  • nya「これ、月重力キャンセルする方向に常に噴射するとかどうでしょう」一同「!!!!」
  • chun「燃料回収できた! 早い! これでかつる!」
  • 「[1:44:01] chunの発言: #Entity: 0 collected
    #Entity: 1 collected
    #Entity: 2 collected
    #Entity: 3 collected
    #Entity: 4 collected
    #Entity: 5 collected
    #Entity: 6 collected
    #Entity: 7 collected
    #Entity: 8 collected
    #Entity: 9 collected
    #Entity: 10 collected」
  • nya「高々度で方向変えた方が速い!」

俺の功績

  • 自機の名前をFateにした
  • 初日の300xをシミュレーションで解いた
  • 未来予測してデブリを回収するコードにTASmachineという名前を付けた
  • それを改良したやつにsmarttasという名前を付けた
  • 64kBを超えたトラジェクトリが正しく受理されないことに気づいた
  • 月に行って全部取った
  • そして全部取るとスコアが下がることを実証した

感想

  • nyaさんが二度ほど神がかってた。二日目に作ってくれたVMラッパーが使いやすすぎて困った。今回最大の功労者。
  • Visualizer超重要。
posted by chun at 11:31| 日記

2009年06月14日

続:Amazon EC2でGROMACSを使ってみる

あまりに遅いのでついかっとなってHigh-cpu mid-sizeのCPUを借りてみました。
こいつは

model name : Intel(R) Xeon(R) CPU E5410 @ 2.33GHz

なので少しは期待できそうです。同じようにして1 CPU performanceを測ってみると0.656 ns/dayぐらい出ます。これはまずまず。うちの研究室でXeon 5150 @ 2.66GHz で測ってみたのがこれより8%ぐらい速いので、良い勝負をしていると思います。
しかしながら、2CPU以上のパフォーマンスがかなり悪いです。lam, mpich-shared-mem, mpich-mpdを使って測ってみたのですが、結局最速が1.154 ns / dayと非常にスケーラビリティが悪くなってしまいました。研究室のマシンで遊んだときにはほぼ2倍(場合によってはデータがすべてキャッシュに乗るので2倍超)の性能が出たので、かなり残念な結果です。理由はだいぶ謎なのですが、このへん( http://d.hatena.ne.jp/yukoba/20090210/AmazonEC2 )が関係してそうです。idle状態のスレッドが復帰しないというのがたぶん問題かなと思います。この調子だとこれ以上のCPU数を稼いでも速度は期待できんなぁという感じです。map-reduceみたいに並列タスクは完全に独立なプロセス並列で投げましょう。
posted by chun at 23:52| 日記

Amazon EC2でGROMACSを走らせてみる

GROMACSは分子動力学計算のパッケージの一つです。今回はこれをAmazon EC2で走らせてみようと思います。
初回と言うことでEC2 instanceはsmallを選び、普段使い慣れているUbuntu 9.04 (Jaunty) を使うことにします。
ログインしてみるとUSEastなのでサーバーのレスポンスはあまりよくありません。とりあえず何も考えずにいつも使っているツール群を入れます。


$ adduser shun
$ visudo
$ su shun
$ sudo aptitude update
$ sudo aptitude install build-essentials zsh screen lam-dev libfftw3-dev
$ cd ~
$ mkdir tmp; cd tmp
$ wget ftp://ftp.gromacs.org/pub/gromacs/gromacs-4.0.5.tar.gz
$ tar xzf gromacs-4.0.5.tar.gz
$ cd gromacs-4.0.5
$ ./configure --enable-shared
$ make -j2
$ sudo make install
$ ./configure --enable-shared --enable-mpi --program-suffix=_mpi
$ make -j2 mdrun && sudo make install-mdrun
$ export PATH=/usr/local/gromacs/bin:$PATH


makeは結構重いので並列makeした方がよさげでした。
気づいた点がいくつかあります。
・VMの特性? プロセスのスケジューリングが良くない。←あとで分かったのですがこれは深刻でした。

47563 原子・Amber ff99力場のサンプルを動かしてみたところ、 0.222 ns/day ぐらいの速度になりました。
これ、遅いです。どれぐらい遅いかというとうちのPen4世代Xeon(TM) 2.80GHzの半分ぐらいです。owt。
Amazonのsmall instanceには期待しない方が良さそうです。

続きます。
posted by chun at 23:37| 日記