タグ

ブックマーク / oraccha.hatenadiary.org (15)

  • UbuntuでInfinibandクラスタを作る - Plan9日記

    今までRedHat系Linux + OFEDパッケージでInfinibandを使うことが多かったが、Ubuntu 12.04 + 基パッケージでどこまでできるかやってみた。InfiniBand HCAはMellanoxのConnectX-3。カーネルは3.5.0-23-genericで、ドライバ類はカーネル標準の物を利用する*1。 結論から言えば、基的に基パッケージだけでInfinibandが動く環境を作ることができる。ただし、Ubuntu 12.04に含まれるlibmlx4パッケージはConnectX-3に対応していないので、ここだけは12.10のパッケージを持ってきてしのいだ*2。したがって、12.04でも新しめのHCAを使わない場合や、12.10では何の問題もなく動くだろう。 まず、/etc/modulesにとりあえず必要そうなモジュールを追加して、それぞれをmodprobeし

    UbuntuでInfinibandクラスタを作る - Plan9日記
  • スパコンとは何か - Plan9日記

    SC2012に向けての機内で金田先生の「スパコンとは何か」を読んだ。2009年の京、そして2011年のHPCIの事業仕分けに仕分け人として関わった東大情報基盤センタの金田先生によるスパコン解説である。京はLLNLのSequoia (BG/Q)に抜かれてTOP500の2位になったが、今回のTOP500の目玉はORNLのTitan (Cray XK7)。TitanはOpteron + GPUというアーキテクチャで、ピーク性能は20PFLOPSと言われている。一般的にGPUの実効性能は高くないけど、NVIDIA Tesla K20xはDGEMMでも結構いい性能が出るらしいし、当然1位を狙ってくるはずだ。 さて、書は以前取り上げた姫野さんと同様にスパコン啓蒙なのだが、京のお膝元と仕分け人という立場の違いがある。私は金田先生がなぜ京にダメ出ししたのか、その背景にどんな問題提起があったのかしか興

    スパコンとは何か - Plan9日記
  • Open vSwitchの存在意義はOpenFlowだけじゃない - Plan9日記

    最近、Open vSwitchについて調べたことを、某所でお話しする機会があったので少し忍ばせた(「I/O仮想化最前線」)。スライドのP37から数枚がそう。 Open vSwitchはOpenFlowに対応したソフトウェアスイッチということで大いに注目を集めたし、自分もそのコンテストで理解していた。だけど、おそらく最初からOpenFlowスイッチを作ろうという目的があったわけではなく、VMをホスティングするためのまともなソフトウェアスイッチが欲しいということでプロジェクトが開始したんじゃないかな。あまり昔のドキュメントが見つからなかったので、当のところはわからないけど。 例えば、VLANを使ってテナント毎にトラフィックを隔離したいと場合も、レガシーブリッジよりも簡単に実現できる。add-portするときにtag引数を追加するだけだ。 # ovs-vsctl add-br br0 # ov

    Open vSwitchの存在意義はOpenFlowだけじゃない - Plan9日記
  • スパコンにまつわる雑談 - Plan9日記

    前回に引き続き、スパコンの話題でお茶を濁す。ISC12が間近に迫り、TOP500でSequoiaが京を抜き1位になるのか注目される今日この頃、スパコン関係のが二冊出版されたので早速買った。姫野ベンチマークで有名な姫野龍太郎著「絵でわかるスーパーコンピュータ」と、岩波講座計算科学別巻「スーパーコンピュータ」だ。前者は一般向けの読み物でスパコンって普通のコンピュータと何が違うの?という人に向けて、「京」はいつ、誰が、どのように、なぜ作られたのかが書かれている。後者は大御所の先生らによる教科書で、スパコン周辺の技術を体系的に学ぶことができる。 それにしても、最近スパコンがメディアに露出する機会が増えたなと思う。先日、NHKスペシャルでも京とIBMワトソンを取り上げた番組が放送されていた。2002年、地球シミュレータがTOP500の1位になったときも、業界は盛り上がっていたけど、一般的には「京」

    スパコンにまつわる雑談 - Plan9日記
  • 「エラー忘却型コンピューティング」なんて言い出したのは誰だ! - Plan9日記

    正確にはFailure-oblivious computingを「エラー」忘却型コンピューティングって訳したのは誰だという話。訳す過程でfailureがerrorに入れ替わっている。情報系の人間は「名前重要!」とか言う割に、障害(fault)、異常(error)、故障(failure)という用語の定義、使い方に無自覚な人が少なくない。Twitterで意外と反応があったので、(自戒を込めて)書き起こしてみる。 Failure-oblivious computingは、2004年のOSDIでMITのMartin Rinardらが論文"Enhancing Server Availability and Security Through Failure-Oblivious Computing"で提案した技術。Cのような言語で不正ポインタ参照が発生しても、これを検出してなかったことにして(適当な値を

    「エラー忘却型コンピューティング」なんて言い出したのは誰だ! - Plan9日記
  • Open vSwitchソースコードリーティング その1 - Plan9日記

    昨日、@oshothebig主催のOpen vSwitchソースコードリーディングに参加してきたので、メモ書きをつれづれと。Open vSwitchはOpen Flowにも対応した仮想スイッチで、最近Linux 3.3にコードがマージされたというニュース「Open vSwitchLinux 3.3でメインラインにマージ、標準サポートへ」が出ていた。Open vSwitchの一部にはLinux kernel用のモジュールが含まれているけど、これがマージされたようだ。 Open vSwitchはTrema経由で使ったことがあったけど、内部がどうなっているかとか、ましてやソースコードはまったく読んでいない。ということで勉強会に参加してみたのだが、のっけの発表からOpen vSwitchの知識をある程度前提にされているようで、ついて行けない。ちょっと予習が必要だったかも。講演資料は各自アップロ

    Open vSwitchソースコードリーティング その1 - Plan9日記
  • SH7706LSRにDebian 5.0をインストール - Plan9日記

    はじめに 8000円弱でSH3で遊べるボード、SH7706LSRにDebian 5.0 (lenny)をインストールしたときのメモ。 Linuxのポーティングに関する情報は、三岩さんのページにまとまっている。また、Debian etchを動かすという話はいくつか見つかるのだけど、さすがに古いので、lennyにしたいと思い立った。結論から言うと、etchからlennyにアップデートして一応動くのだけど、何かDBが壊れているのか、Silicon Linuxで公開されているパッケージが不十分なのかわからないが、apt-getが全然機能しない。ということで、現時点ではetchを使い続ける方がお勧めである。 母艦にはMacBook Airを使った。何かとLinux環境が必要になるが、そこはVMWare Fusion上のUbuntu 11.04でカバーした。USB hubにはEthernet、シリアル

    SH7706LSRにDebian 5.0をインストール - Plan9日記
  • さくらVPSでPlan 9 - Plan9日記

    いろいろ動かないなぁと探っていたんだけど、何のことはないパーティションIDをMINIXからPlan 9に変えるのを忘れていて、9loadがパーティションを見つけられなかったというオチで、結局MINIX3と同じアプローチでPlan 9をさくらVPSで動かすことができた。GrubからちゃんとチェインロードでPlan 9をブートできることを確認できたのは収穫だった。回り道したけど、今まで気にすることがなかったブート周りの仕組みがわかったので、合わせてメモを残しておく。 方法は「さくらVPSでMINIX3」とまったく同じで、スワップパーティションにddでPlan 9のディスクイメージを書き込む。fdiskでスワップパーティションのパーティションIDを0x39 (Plan 9)に変更することを忘れないように。 次のスクリーンショットがさくらVPSでPlan 9を起動したところの図。 ただしネットワー

    さくらVPSでPlan 9 - Plan9日記
  • timeline: Twitter reader - Plan9日記

    ターミナルで動くTwitterクライアントというかリーダーを書いてみた。データの取得形式はJSONになっているので、Plan9portのsmugfsで使われているJSONパーザを使わせてもらった。クライアントで表示される部分はわずかだけど、結構なデータ量がやりとりされているのね。tweetごとにユーザプロファイルとか。 当はHTTP通信部分も自分で書こうと思ったのだが(webfsもよいかもしれない)、hgetを呼び出すだけになっている。 なんだかVMWare Fusion上だとsleep(2)が正確に動いてないか*1。タイマ割込みの仮想化がうまくいってないのかな。3倍以上の速度で進んであっという間にAPIを使い果たしてしまった。。。 とりあえずソースはgithubにさらしておく。 (追記)IRCクライアントが存在するので、IRC経由でTwitterを使うというのもありかもしれない。 (追

    timeline: Twitter reader - Plan9日記
  • パケットキャプチャの実装方法 - Plan9日記

    ネットワークアプリケーションの解析やデバッグなどにパケットキャプチャ(もしくはスニファ)は必須の機能で、UNIXであればtcpdump、snoop、wireshark*1、Plan 9であればsnoopyなどが存在する。パケットを横から盗み見するために、OSごとにいろんなアプローチを取っている。ある機能をどのように実装するかで、そのOSの設計哲学が透けて見えてくるかもしれない。ということで、今日はパケットキャプチャの実装方法について調べてみたい。 libpcap tcpdumpのパケットキャプチャ処理はlibpcapとして独立したライブラリになっていて、OS依存部分を隠蔽している。例えば、BSD系UNIXはBPF(Berkeley Packet Filter)、LinuxはPF_PACKETを利用してパケットキャプチャを実現している。より正確にはBPFはキャプチャとフィルタリングするのに対

    パケットキャプチャの実装方法 - Plan9日記
  • プログラミング言語Go - Plan9日記

    Plan 9開発者がぞくぞくとGoogleに吸い込まれていき、何が出てきたかというとGoというプログラミング言語だった。TwitterでもGoに関連してPlan 9への言及が増えている。これを機にPlan 9にも興味を持ってもらえれば、これ幸い。 Goに対する私の第一印象は「Limboだなこれ」だった。誰かはLimbo++とかつぶやいてた。CSPスタイルの通信モデルはNewsqueak、Alef、Limboとずっと一貫している。2007年にもなってなぜGoogle Techtalksで20年も前の話をするんだろうと疑問に思ったけど、Goへの伏線はもう生まれていたのかもね。で、Goの構文はC/C++に近いので、Limboより取っつきがよさそう。LimboはDisというプロセスVM(バイトコードインタプリタ)上で動作する言語だったけど、Goはネイティブコードにコンパイルされる。性能はよさそう。

    プログラミング言語Go - Plan9日記
  • 建築とソフトウェア - Plan9日記

    Less is more. -- Ludwig Mies van der Rohe Less is bore. -- Robert Venturi 今日たまたまWebサービスのチュートリアルに参加していたのだが、(そのチュートリアル自体は面白くもなかったが)design principleの話で引用されていた、冒頭の"Less is more."という言葉が印象に残った。「less(1)はmore(1)」じゃなくて(笑)*1、近代建築の巨匠ミース・ファン・デル・ローエが残した言葉らしい。「より少ないことは、より豊かなこと」というモダニズム建築のモットーを表しているのだとか。 これに対して、ポストモダンの建築家ロバート・ヴェンチューリは“Less is bore.” (より少ないことは退屈だ)と皮肉ったのだとか。 なんだかBell研とGNUみたいではないか。 建築とソフトウェアって全く分野が

    建築とソフトウェア - Plan9日記
  • IMP: インターネットルータの祖先 - Plan9日記

    先日の2.11BSDのエントリでも触れたが、IMP(Interface Message Processor)に対応するコード(/sys/netimp/)があって驚いた。ということでそこからIMPとは何者かを探っていきたい。特に今回調べたのは、IMPとホスト間のプロトコルである、1822ホストアクセスプロトコルについてである。 この図は1969年のARPANETのネットワークトポロジを示している*1。現在地球上を網の目のように覆っているインターネットも、当時はたった四つのサイトの計算機をつないだものでしかなかった。さて、各サイトにあるIMPとは何だろうか。IMPはインターネットルータの祖先であり、後にPSN(Packet Switch Node)と呼ばれるようになった*2。 ARPANETは全米各地に存在するさまざまに異なるアーキテクチャの大型計算機を相互接続し、科学者間で資源を共有しようと

    IMP: インターネットルータの祖先 - Plan9日記
  • Springの名前サービス - Plan9日記

    これまたtwitterで久々に目にしたOS。90年代初期、SUNはSpringと呼ばれる、マイクロカーネルベースのオブジェクト指向分散OSを研究していた*1。プロジェクト開始時の時代背景としては、UNIXをオブジェクト指向的に再実装しようというプロジェクトがご破算になり、Mach 3がリリース直後という時期だった。このころはまだJavaが実装されていなかったので、C++で記述されている。Spring自体は製品化されなかったが、SolarisやJava、CORBAなんかに影響を与えた。 An Overview of the Spring System ここではSpringの名前サービスに着目したい。通常、OSはいろいろな名前サービスを提供している。例えば、ファイルシステム、環境変数、DNSなどだ。そしてこれらの名前サービスはそれぞれAPIが異なっている。これに対して、Plan9は「すべてはフ

    Springの名前サービス - Plan9日記
  • カーネルを読んでみる - Plan9日記

    UNIXカーネルがC言語に書き換えられたのは3rd editionであり1973年のことなので、このバージョンのソースコードはPDP-11のフルアセンブリである。しかし、4221行とコンパクトだし、コメントも満載なので、アセンブリに対するアレルギーがなければ、pre K&R Cの文法に惑わされなくてよい分、V6カーネルよりも読みやすかったりして。どちらにしろPDP-11アーキテクチャの理解がある程度必要だけど。Gordon BellのページにPDP-11 handbookのコピーがあったので、興味がある人はそちらもどうぞ。 まずはシステムコール呼出しから。次のコードは、cat.sのopenシステムコールを呼び出す部分の抜粋だ。 2: mov r0,0f sys open; 0:..; 0システムコールの実現には、sys命令によるトラップを利用する。この際にパラメータをどのようにユーザからカ

    カーネルを読んでみる - Plan9日記
  • 1