3/29 (土)
[MyWeb] InfiniBand プログラムに必要な基本的な概念
InfiniBand プログラムのページを書き溜めているのだが、その最初のページ「InfiniBand プログラムに必要な基本的な概念」ができた。
3/28 (金)
[Android] ATOK for Android
ATOK for Android が 3月31日まで 980 円になっているので購入してみた。
起動するとフリック入力がジェスチャー入力になっていたので驚く。 これは当然設定で変更できる。
入力の精度は随分あがったようで、iWnn では表示されなかった漢字候補が普通に出てくる。 「鉄コン筋クリート」など特殊なボキャブラリーもなぜか変換できる。 ただ記号の入力が面倒になった。
3/21 (金)
[Movie] LIFE!
『LIFE!』(原題:THE SECRET LIFE OF WALTER MITTY)をチネチッタで観てきた。 劇場で掛っていた予告が秀逸なので興味があったので鑑賞。
フォトグラフ雑誌『LIFE』のネガフィルム管理部門で働く妄想癖のある冴えない男ウォルター・ミッティが、冒険を通じて自身を見つめ直すという成長譚。
LIFE誌の最終巻の表紙に指定された25番目のフィルムに何が写って入るかは途中で分かるし、財布の行方も予想できるが、ラストはジンと来る。 ウォルターもシェリルも失業状態という現実は厳しいが。
[Movie] ローン・サバイバー
続けて川崎ラゾーナの 109 シネマで『ローン・サバイバー』(原題:Lone Survivor)を観た。 前半寝てしまって銃撃戦が始まって何が何だか分からなかった orz
3/20 (木)
Pseudo InfiniBand HCA driver(pib) にフロー制御を入れる
pib だが、perftest パッケージの ib_write_bw や ib_read_bw を使うとエラーが発生することが判明。 ib_write_bw は RDMA WRITE を、ib_read_bw は RDMA READ を多重に発行しているが原因のようだ。
これまで ib_write_bw と ib_read_bw は確認していたが、この時はオプションなしであった。 ib_write_bw と ib_read_bw は -a を付けると、転送サイズを変えながら 1 つのサイズにつき 5000 回の送信を繰り返すようだ。 また -d を付けると IB デバイスを指定できるので、シングルホストモードでもループバックではない形でテストできる。
サーバ側は以下のようにテストプログラムを常駐させておき、
$ ib_read_bw -a -d pib_0
クライアント側からは以下のようにテストを起動する。
$ ib_read_bw -a -d pib_1 server-address
バグもあったのだが、それ以外に RDMA WRITE や RDMA READ を大量転送すると輻輳が発生し、再送が繰り返されてテストが失敗する。 InfiniBand 仕様のフロー制御はハードウェアを仮定しており、ソフトベースの pib では実装できない。 そこで独自のフロー制御を導入する。
- RC 通信は RDMA WRITE も含めて送信側→受信側へ一定数の要求パケットを送信すると、受信側→送信側への ACK が返ってこなければ要求パケット送信を停止する。
- RDMA READ は送信側→受信側は要求パケットの1回だけで、後は受信側→送信側へ一方的に ACK を使ってデータ転送を行う。本来 ACK にデータ転送を載せてくるという InfiniBand の仕様が変なのだが、それ以上にRDMA READ ACK に対する 「ACK の ACK」が仕様上定義されていないので、RDMA WRITE のようには処理できない。
そこで ACK を一定回数受け取った送信側は受信側に Congestion Notification Packet(CNP) を送り、RDMA READ を転送中の受信側は一定数のパケットを送信後 CNP がこなければ送信を停止することにする。CNP は IBA 仕様書 Vol.1 R1.2.1 の Annex A10 に書かれたもので、本来は別の渋滞制御のためのパケットだが、投げても無害なパケットなのでこれを「ACK の ACK」として代用する。
上記の2つのフロー制御の導入で、これまで再送失敗でこけていたテストは全部パスするようになった。
3/16 (日)
[Movie] ロボコップ
チネチッタで『ロボコップ』を観てきた。 予想外に面白い。 展開はスピーディーで、設定も納得できる。 BGM はなんとなく特撮風。
前シリーズは人間の記憶を移植されたロボットだが、今回は脳・食道・脊髄・人工心肺だけになった人間がパワードスーツを着ているという設定。 時々、装甲を外してグロい生身のパーツが出てくるのは、なんとなく『銃夢』を連想させる。
ロボコップ自体は超人的な戦闘力を持っているのだが、戦闘中は主人公の生身の脳に変わって A.I. が判断をしてそれを脳に送り、脳が自分が「決断」をしたと判断するという設定だ。 ロボコップを作った博士が「free will なんて幻想だよ」だよみたいなことを言うのだが凄い新鮮に感じた。 というのも偽の記憶を植えつけられるとか催眠にかかるとかいう設定は多いが、自分の認識自体がリアルタイムに書き換えられるというのは SF 映画では初めてではないだろうか? この設定は近作ではいまいち生きなかったが、2 作目以降で使うんだろうなぁ。
3/13 (木)
[MyWeb] 「文字列の照合順序(Collation)」ページを作成
これまで collation について調べた内容をまとめて「文字列の照合順序(Collation)」のページを作成した。
3/1 (土)
[Movie] ホビット 竜に奪われた王国
チネチッタでホビット三部作の二部目にあたる「竜に奪われた王国」を観てきた。
今回は闇の森に入るところから、湖の町にたどり着き、離れ山にドワーフが侵入した後、スマウグが湖の町めがけて飛び出すところで終わる。 「ホビット」の原作の尺が足らないのか、いろいろオリジナル展開が挟まる。 こうやって観てみると、LotR は三部を2本の映画で撮って 6 作にしてもよかったよなぁとしみじみ思ってしまう。
一部の日本上映は2012年12月(2012年12月15日の日記、12月24日の日記)だったが、三部は2015年になるという。
追記:3/9
チネチッタで 2D の字幕版を観てきた。 吹き替え版と字幕の両方を観てほとんど違和感がなかったので、吹き替え声優さんはいい仕事をしていたのね。