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| 日記

2009年06月02日

Cell Challenge 2009ソース公開

ソースコードが公開されました。他のチームのソースをじっくり読もうと思います。

http://www.hpcc.jp/sacsis/2009/cell/

うちのチームのみどころは#include "macro.c"です。

#うちのチームやけにサイズ大きいなと思ったらなぜか実行ファイルがアーカイブに含まれてた……。
posted by chun at 14:44| 日記