2009年12月31日木曜日

12/31 グラフ



SSTのWindowサイズ49、計算ノードは3ノードで各2プロセスずつ6プロセスでソケットを使いきった状態。

レイテンシやタプル数については前回と同様の傾向を示している。
896が特異点だが、これはCPU使用率とタプル数が同時に下がっているので、
何らかの理由でタプル数が制限されてしまっただけと思われる。

CPU使用率は1024-1152あたりから激しく値が乱れてしまう。
確証はないが、たぶん1024以降は実際は100%に貼りついている状態だと思われる。
現実的にはここでノード数を増やすべきだろう。

2009年12月26日土曜日

12/26 レイテンシ・タプル測定



以前に実装したタプルカウンタを組み込んで再びレイテンシを測定した。
上のグラフは前回のグラフにタプルカウンタ実装時の値を追加したもの。
前回から追加されているグラフがタプルカウンタを実装後のレイテンシ。
後半レイテンシが荒れている部分があるが、ところどころに確からしい値があるので何か別の要因が考えられるが詳細な原因は不明。
計測結果をNFSに吐くノードはわけてあるものの、タプルカウンタを動かすと負荷は増える。

下のグラフはthrottledRateによる理論値とタプルカウンタによる実測値を比較したもの。
512までは理論値の半分、それ以降は腹這いとなっていることがグラフから見て取れる。
タプルカウンタ単体では理論値とほぼ等しい動きを示したので、これはタプルカウンタの異常ではなく、
レイテンシが発散しないという現象に対しての、SPADE(TCP/IP?)が供給レートを下げているためだという仮説を立証ことができた。

CPU使用率の測定は現在実行中。明日の朝には実験が終わっているはずだ。

2009年12月23日水曜日

12/23 レイテンシ詳細



赤が平均値、青が最大値、緑がノード数/一秒間のタプル数。
測定はsaからソース1ノード、計算3ノードを使用。

1024を過ぎたあたりからいきなりレイテンシが増加しはじめ、3000から4096へと向けて収束していく。
レイテンシが収束するのはSystemSがストッパーになっている模様。

1024までは線形だが、どうしてこのようなグラフになっているかは謎。

2009年12月19日土曜日

12/18 レイテンシ計測と研究室の環境整備

・研究

レイテンシ測定。x軸はThrottledRateで2のべき乗。y軸はレイテンシ(秒)。
青は最大値、赤は最小値、緑は平均値。

圧縮なしのSSTでWindowサイズは49。思えば行列圧縮のお陰で多大な苦労を強いられたと思う。
割合早い段階でレイテンシが一定になるので、今度は32-512の範囲で細かな計測を行っている。
タプル数とレイテンシの関係がわかったら、とうとう負荷分散プログラムの実装に入れる!

・環境整備
まずはルータ。マイクロ総研の憎たらしいルータは、設定画面のはじっこに見逃していた項目があっただけだった。
これで研究室側のネットワークは全てGigabitに!
今まで使っていたBuffaloのWLAN+Routerはルーティングをオフにしてブリッジ+WLANとして学生室に配置。
これにより今までにない電界強度で無線に接続可能です。
IPやDHCP、DNSの設定は今までと変わりないのでそのまま接続できる。

計算クラスタだが、今日はMACアドレスによるPXEブート時に読み込むキックスタートファイルの切り替えを実験した。
具体的には、sa01-08ノードのHDDをすべてさらのものと入れ替えて、sb01-08のインストールを同時に行ってみた。
SMARTのエラーやMACアドレスの書き間違えなどで少し手間取ったが、一応8台同時に異なる設定でのインストールが可能となった。
MACアドレスとキックスタートファイルを正しく準備できればどれだけ台数が増えようとも問題ない。

sb01-08にはLANも電源も繋がれていないので起動不能だが、それさえ準備できればOS・SystemSともに実行可能になっている。
saはMemoryが8GBだが、sbは4GBなのでその点は注意が必要。

あまり研究には影響がないが、antaurノードに二台目のHDDを接続してSAMBAのバックアップを開始した。
Windowsからのファイル保存もこれで安心して行える。

2009年12月5日土曜日

12/4 NetBootとSystemS

前々から予告していたSystemS用シェルがついに完成した。
自動でNIS,NFS,SystemS用のファイルのインストールを行い、すぐにログインしてSystemSを実行できる環境を構築することができます。
とりあえずsa01というノードで実験を行ってSystemSが実行できることを確認しました。
クラスタ全体へのインストールもわずかエンター数回で終わらせられるので、早々にクラスタ環境を整えられそうです。

レイテンシカウンタのほうは進展がなくてヤバイのでそろそろ頑張ります。

2009年12月4日金曜日

12/3 レイテンシカウンタ

三日ほどレイテンシカウンタの実装で悩んでいたが、結果が吐き出されない理由は遂にわからなかった。
しかし、うまくいかなくても一度キャンセル→サブミットすると案外正しい結果が出る場合があるので、
自分の実装の問題ではなくSSTの実装の問題の模様。同様のことを森田君も以前言っていたような。

もう一つ、レイテンシが異常に大きいというのもただ単に時計がずれていただけの話だった。
NTPDATEで時間をある程度そろえてから実行したらまともな値になった。

最後にこれだけは解決できなかった問題だが、レイテンシがどうやら最初からの積算で計算されているようだ。
SPADEのtimeMicroseconds()とFunctor内の式の組み合わせがよろしくないのかもしれない。
もしくは、AggregateのMax()が悪さをしているのかも。
これは明日に持ち越し。

PXEブートのほうも明日試すことになるのでうまくいくかどうか楽しみ。

2009年12月3日木曜日

12/3 PXE boot

PXE boot+ネットワークインストール+キックスタートを組み合わせてクラスタ環境を構築する。
最後の難関(?)FTPdも陥落したので後はbootさせてキックスタートさせるのみ。

後でWikiにまとめるが、とりあえず要点をメモしておく。

・bootの流れ
BIOSからPXEが呼ばれてDHCPでアドレスを設定、同時にboot先のTFTP(≠FTP)サーバを調べる。

TFTPでpxelinux.0vmlinuzinitrd.imgなどを拾ってネットワークboot。
このとき、キックスタート(***.ks)ファイルの位置や接続方法もdefaultファイルから読み込む。
ksはTFTPではなくHTTPかFTPで転送する必要がある←ここではまった

Linuxインストーラがksファイルをうまく読めたらkickstart開始。
ksに設定したイメージ読み取り先にアクセスできれば後はOK。
このときのDVD/CDイメージもFTPで転送するので注意。

・注意事項
pxelinux.0というファイルはCentOS(RH系)独自。
debianではnetboot.tar.gzを用いる。
TFTPのルート以下のファイル配置も独特なので適宜distributionごとの設定を確認する必要がある。
CentOSでは、tftpのルート(今回は/var/lib/tftpboot)直下にinitrd.img、pxelinux.0、vmlinuzとフォルダpxelinux.cfgを配置し、pxelinux.cfg以下にloadするファイル名を記述する。
ここで一番ややこしいのは、PXEはまずpxelinux.0を読み込んで、これがpxelinux.cfg/defaultを読んでファイルのロードを行うのだがこのときのファイルの相対パスの基準がtftpのルートになっているということ。
なので、defaultでload initrd=initrd.imgなどとした場合、PXEが読みに行くフィアルは/var/lib/tftpboot/initrd.imgであって/var/lib/tftpboot/pxelinux.cfg/initrd.imgではない。

また、TFTPには認証やセキュリティという概念がないのでその点にも注意。
誤ってインストールすべきノード以外でPXEが走って暴発するのを避けるためにも、
普段はdaemonをストップしておくほうが安心だろう。最悪OSごと全滅するからだ。

DHCPdの設定ファイルに直接PXEが読みだすファイルのディレクトリを書き込む必要があるので、
市販のルータのおまけのDHCPを使おうとするとたぶん痛い目にあう。
DHCPはブロードキャストで早い者勝ちの曖昧なプロトコルなので、
スイッチの位置などを考慮すればルータ側のDHCPを止める必要はないらしいが、危ないので非推奨。

FTPサーバはvsFTPdを用いた。たしかにProFTPdよりも項目が少なくて設定しやすい。
今回の環境ではNFSやNISが連動していて危ないのでLocalユーザのFTP接続は完全に切ってある。
anonymous関連の設定はProよりVSのほうが数倍楽でわかりやすい。
もしユーザごとの細かい設定を要するならProFTPdを推薦するが、anonymousのみなら絶対vsFTPdだ。

vsFTPdのanonymousログイン時のルートディレクトリがよくわからなくて相当はまったが、
debianでは/etc/passwdのftpのホームディレクトリとなる。/etc/vsftpd.confでは変えられないので注意。

・その他
多少気持が悪いが、hosts.allowに何も書いていないのに外部からvsFTPdに接続できてしまう点。
TFTP(atftpd)なんかはクライアントも許可しないと接続できなかったのに気味が悪い。


クラスタに気を取られすぎてレイテンシカウンタが全くできていない・・・。