タグ

ブックマーク / sdyuki.hatenadiary.org (2)

  • RDMA - sdyuki-devel

    Wikipedia RDMA:リモートホストのメモリにCPUを介さず直接値を書きこむ。CPUへの負荷が非常に小さく、かつ極めて小さい遅延で通信できることが期待できる。 速いのは良いことであるのはもちろんだが、ネットワーク通信の遅延は非常に大きいという前提が崩れることで、従来では考えられなかった分散プログラミングモデルが現実的になってくるかもしれない。 元々はHPC向けで物理層にはInfiniBandを使うことを想定していたようだが、探してみるとTCP/IPでRDMAをサポートしたNICが思わず買ってしまいそうなお値段で手に入る。 NTT-X Store NetXtreme II 1000 Express デュアルポート Ethernet アダプター ぷらっとオンライン IBM NetXtreme II 1000 Express イーサネットアダプタ (39Y6066) Broadcom N

    RDMA - sdyuki-devel
    yyamano
    yyamano 2011/06/24
  • イベント駆動型プログラムのエラー処理 - sdyuki-devel

    イベント駆動型のプログラムでは、エラー処理の記述が面倒になることがある。これを何とかしたい。 例えば、keyからidを引き、idからdata引くプログラムを書きたいとする。 手続き型で書くと以下のようになる: def doit(key) id = get_id(key) data = get_data(id) return data end ここで、get_id と get_data は長くブロックするので、イベント駆動型にしたいとする。 そうするとプログラムの正常系の処理は↓このようになる。 def doit(key, &callback) get_id(key) {|id| get_data(id) {|data| callback.call(data) } } # futureを返すのは良いアイディア end ここまでが前提条件。 このプログラムのエラー処理を愚直に書くと、↓このよう

    イベント駆動型プログラムのエラー処理 - sdyuki-devel
  • 1