2012年2月20日月曜日

Rocks Cluster Distribution,メモリとメモリとcondorではまる

先日来構築しているRocks Cluster DistributionによるPCクラスタで,「1ノードでもいちばん左の棒(stewart,Core i7 920)より速いことを期待していたのだが.」と思っていた.CPU性能だけを比較すると,少なくともグラフの左端の棒と同じ程度の能力を出してくれるはずなので.

ベンチマークに使っている計算がメモリ速度に強く依存するものなので,これはメモリのせいに違いないと思って調べてみた.そうしたら,

…メモリのクロック数が遅く設定されている!?

刺さっているメモリはPC3-10600(DDR3-1333)なのだが,メモリクロック数が500MHzになっている.667MHzぐらい出るはずなのに.
メモリのクロック数は,BIOSで"Auto"に設定されていたので,これをDDR3-1333に設定してみた.

改めてベンチマーク計算したのが左上のグラフの赤い棒.
1ノード(4並列)では速くなっている.2ノード(8並列)でも速くなっている.
調子に乗って4ノード(16並列)を走らせたら,…あれ,遅くなった!?

実は,メモリの設定を変える前にいちどフロントエンドの再インストールをした.ネットの情報で「Rollはあとから入れるのが大変なので,最初に全部入れておくほうがよい」とあったので,Rollを目一杯インストールするため.
最初のインストールのときにはなかった仮想ネットワークインターフェイスが作られ,OpenMPIを設定し直さないと並列計算できなかった.

何度か再インストールをやり直したが,どうもxencondorのRollをインストールすると,仮想ネットワークインターフェイスが作られるらしい.
最初はxenだけ抜いて試したが,それでは計算時間は変わらず.
condorを抜いてインストールしたところ,やっと計算速度が向上した.その結果が左上のグラフの黄色い棒.

とりあえずすべてのRollを入れておくのは,HPC目的の場合には,あまりよい作戦ではないようだ.xenやcondor Rollは特によく吟味したほうがよいだろう.

ここまで来るのにだいぶん試行錯誤した.まずは理解できる結果になってよかった.

速くなったのはうれしいが,残念なのは,HA8000の32並列にわずかに及ばなかったこと.もうちょっとだったのに,惜しいな.

それに,1ノードでいちばん左の棒(stewart, Core i7 920)とまだ大きな差がある. stewartのメモリは何が刺さっているんだっけ? 今度調べておかないと.

このほかに,フロントエンドのメモリを増やそうとしてはまった.4GBのメモリを4枚買って挿したのだが,動かない.しかし2枚挿すと,どの2枚をどのチャネルに挿しても,動く.memtest86+で長時間メモリテストしてもばっちり.なぜだ!?

きっと相性というものがあるのだろうと自分に言い聞かせて,いまは2枚(8GB)だけ挿して運用している.

いろいろいじったのでRocksクラスタには多少詳しくなった.計算時間もいくらか早くなったし,手間はかかったがまぁよしとしよう.

2012年2月3日金曜日

Rocks Cluster Distribution・素人クラスタの実力


先日構築していたRocks Cluster DistributionによるPCクラスタで,OpenFOAMの解析テストをしてみた.以前に行ったのと同じ計算.

その結果が左のグラフ.
真ん中の,rockshead4並列,8並列,16並列というのがPCクラスタの計算結果だ.計算時間なので短い方が速い.

なかなかがんばっているのではないだろうか?

素人が適当に組んで,まったくチューニングしていないPCクラスタだが,16並列で回せば,うちの研究室でこれまでいちばん速かった(はずの)PC(meisa)よりも速い.これなら組んだ甲斐があったというものだ.

ちなみにmeisaはXeon X5570 (Quad Core) × 2 (2.93 GHz)に48GBのDDR3メモリ(1333MHz)を積んだマシン.
PCクラスタはCore i7 950 @ 3.07 GHzと12GBメモリを積んだノードを4台並べたもの.ネットワークはオンボードのYukonを使ったGbE接続なのであまり速くない.チューニングもまったくしていない,インストールしたままの状態.

だから4並列は1ノードでの計算ということで,これが思ったほど性能を出していないのは不満.1ノードでもいちばん左の棒(stewart,Core i7 920)より速いことを期待していたのだが.16並列なら,HA8000の64並列を上回り,あわよくば128並列にも肉薄してほしかったのだが.しかしチューニングせずにそれは無理かな.

まぁそれにしても,安い予算で組んでそこそこ速いのはすばらしい.それに計算ノードを自由に追加できるから,予算を確保できさえすればもっと速くすることも可能だ.速いNICを買ってきて挿すのも難しくない.

2月はこれで計算を進めよう.

2012年2月2日木曜日

1月の反省

つい先日,新しい年が明けたと思ったら,もう2月ですよ.早いなぁ.

1月は風邪を引いて長く伏せったこともあり,仕事をため込んでしまった.関係各位にお詫びいたします.
(そのうち書くつもりだが,少しエンターテインメントに時間をつぎ込んだせいもある.でも,ちょっとぐらいの娯楽はいいよね!?)

そのおかげで月末にかけて急に忙しくなり,バタバタと過ごした.1月末は卒論や修論が佳境で慌ただしいことは,何度も経験して分かっていたはずだったんだけどなぁ.

今年の達成目標のようなものは決めていないが,今のところは「物欲を抑える」ことを目指して生活している.

食料や消耗品など以外には,新しいものをなるべく買わないようにする.昨年の出費が多かったので,今年は節約したいと思ったのと,いま持っているもので1年ぐらいは十分に生きていける気がしているのが理由.自分がどんなものをほしがるかを観察しようという気持ちもある.

「なるべく」なのは逃げですな.ちょっとぐらいはいいだろうということで.
それと,本を買うのは節約しないことに決めている.

1月は,本以外の娯楽品をひとつ買った.6,580円也.それ以外はなし.

大学の教員なので,研究テーマに自分の好き嫌いや得意,不得意を反映させることができる.ぜんぶがぜんぶそうではないが,ある程度は.だから,仕事以外の特別な趣味を必要としていないので,物欲を抑えられるのかもしれない.

研究などの今年の目標は,まだ考え中.

2012年2月1日水曜日

Rocks Cluster Distributionは簡単だった!

Rocks Cluster Distributionはとても簡単にインストールできた,というお話.

昨年末にOSCAR苦労していた

OSCARはPCクラスタを組むためのソフトウェアパッケージで,複数のPCで並列計算させたり,たくさんの計算ジョブを実施したりするためのもの.研究室で比較的安いPCをたくさん買って,コンピューターシミュレーションをばんばん実施するために導入した.
同じ目的に使えるソフトウェアはいろいろあるが,OSCARを選択したのはUbuntuで使えるから.Ubuntuは研究室でここ2年ほど使っている.

しかし実際にOSCARを使ってみて分かったのは,PCクラスタは自分でコンパイルしたプログラムを実行するために使うものだから,ふだん使い慣れているOSを選ぶ意味があまりない,ということ.
Ubuntuをふだんの研究活動に使うためのノウハウはここ2年間で蓄積されてきたが,PCクラスタを利用するときにはそのノウハウがあまり役に立たない.それよりもクラスタそのものが使いやすいとか,保守しやすいなどの方がずっと重要.

昨年末から始まった研究プロジェクトで専門業者が組んだPCクラスタを導入する予定があり,それにはCentOSが使われているとのことだったので,CentOSベースで,OSCARよりも導入実績が多いらしいRocks Cluster DistributionというPCクラスタソフトに乗り換えてみた.

研究プロジェクトの都合もあるので,さっさと動かせるようにしたいと思い,ウェブサイトからRocks Cluster Distributionのjumbo DVDイメージをダウンロードしたのが31日の11時頃.

DVD-Rにイメージを焼き付け,Users Guideを印刷して,その最初から22ページまでに書いてあるインストール手順を順番にやったら,

…あっさりインストールできて,14時前にはちゃんと動くPCクラスタが構築できた.簡単じゃん!

あのOSCARに苦しめられた日々は何だったのか.

MPIのごく簡単なテストプログラムは走った.OpenFOAMのコンパイルも簡単に通った.現在,以前に計算速度の比較に使ったOpenFOAMの解析テストを実施中.安いPCを並べただけの素人クラスタで,どのぐらいの速度が出るのだろうか.楽しみだ.

OSCARの名誉のために付け加えますが,OSCARも元々はRed HatやCentOSとともに使われることを想定して作られたPCクラスタソフトで,Ubuntuでのサポートははじまったばかりです.だからCentOSにOSCARをインストールしたなら,簡単にできたのかもしれません.

2012年1月19日木曜日

風邪の顛末

1月3日から,2週間ほど風邪に苦しんだ.今回は長かった.その顛末を書いてみる.

3日
実家にいるときから鼻水が出始め,声がかれた.たぶん母親からもらったものと思われる.

4日
帰京.午前中は咳は出るもののそれほど苦しくなかったが,午後からたぶん熱が出始めて,夕方はずっと寝ていた.

5日
丸1日寝ていた.この日がいちばん苦しかった.37~38℃の微熱が一日中続き,鼻水と痰,咳が止まらない.咳は痰の,痰は鼻水のせい.2年半前にインフルエンザにやられたときは,熱はもっと高かったがこんなに咳き込まなかったはず.
一晩中激しく咳き込んだので,金野のアパートの上の階に住んでいる御家族は,きっとうるさかったことだろう.お詫び申し上げます.

6日
朝には熱が引いたので,もう回復基調かなと思って,この日は大学の新年会に出席.その後,年末にできなかった書類仕事などをこなそうとしたのだが,どうもすぐ疲れて動きが悪い.
おそらく,5日に熱を出して寝込んでいたときに,体力を消耗したのだろう.2009年のインフルエンザのときもそうだった.早め(4時頃だったかな)に帰宅し,夕方からは寝て過ごす.
この日の夕方だったか,黄色や緑色の痰が出た.ネット情報によると風邪の治りかけにはこういうことがあるらしい.また細菌感染の可能性もあるとか.いちばんひどいときは,抹茶プリンか? と思わせるような緑色の固い痰が出て焦った.

7日~9日
3連休はだいたい寝て過ごした.熱は出なかったのだが,鼻水と痰は止まらず.
ネット情報では,黄色や緑色の鼻水や痰が続くときは,細菌感染の可能性があるから病院に行こう,とあったので,もしこれが10日以降も続くなら病院に行かざるを得ないだろうかと漠然と思っていた.
ただ7日から9日にかけて,だんだんとよくなっている実感があったし,まだ夜中に咳き込んだりしたが,その頻度もだいぶん下がってはいた.

10日~
やっとまともなサラリーマンモードに復帰.
鼻水と痰は止まっておらず,たまに咳き込むのも続いていたが,仕事にならないほどではなかった.
それでも,10日~のウィークディ(4日間だけですが)は原則マスク着用で,無理せず過ごすようにしたつもり.
午後から夕方にかけて,咳をする回数が増えるようだ.免疫力が落ちていくのかな.
週末は,やはりなるべく寝て過ごすようにした.この頃にはやっと,夜中に咳き込まずに朝まで眠ることができるようになった.

16日~
これを書いているのは18日だが,現在も夕方になると多少咳き込む.
これは風邪のせいだけではないかも.関東は今日で34日間連続降雨なしだそうで,空気がとても乾燥しているようだが,そのせいもあるかもしれない.

風邪を引いて考えたこと

以下すべてネット情報に基づく自己流の治し方なので,安易にまねしないでね.

今回は「医者にかからず自分で治す」ことにしていた.
ネット情報によると,風邪のウィルスをやっつける薬はないわけではないようだが,飲まずに治した場合と治るまでの期間に有意な差がないらしい.だから自分の免疫力を使って治そうという趣旨.

そのためには,まず37~38℃の微熱が続くほうがよいらしい.へたに体温を下げるとよろしくない.
それから体力を保つ必要がある.

というわけで,実に平凡な結論だが,「暖かくして,寝る」のがいちばんよいようだ.
風邪がいちばんひどかった5日から数日間は,寝るときは湯たんぽを入れ,風門(背中の,首の下にある壺)に使い捨てカイロを貼って寝た.

これで熱やだるさ,関節の痛みとはオサラバできたが,鼻水だけはしばらく止まらなかった.
これはどうしてだろう? 細菌にやられていたのだろうか? 耳鼻科にはかかっておくべきだったのかもしれない.

これで今年の風邪は終わりだといいな.

2012年1月16日月曜日

ファイルを書き,ファイルを読む

久しぶりにPythonでプログラムを書いた.Pythonというのは比較的新しいがポピュラーなプログラミング言語で,スクリプトをチョチョッと書いてすぐ実行できるのと,機能拡張パッケージが充実しているので,重宝している.

今回はPyevolveという遺伝的アルゴリズムを実装したソフトを使って,最適化計算.

最適化というと聞こえがいいが,やっていることは結局「いろいろ,たくさんやってみて,よさそうなものを探す」ことに過ぎない.このうち「いろいろ,たくさん」の部分を本当にいろいろたくさんやってしまうと時間がかかるので,多少頭を使ってよさそうなものを見つけようとする方法がいくつかあり,今回使った遺伝的アルゴリズムもそのひとつ.

で,問題は「やってみて」の部分.今回の場合は,パラメタを変えながら数値計算のプログラムを回してみて,計算結果がなるべく小さくなるものを探す.

この計算プログラムはCで書かれていて,2003年に開発したのだからもう8年以上使っているもの.パラメタファイルを読んで,計算結果を標準出力に書き出す,というごく平凡な構成だ.
だから,パラメタを変えてプログラムを回し,計算結果を調べるためには,パラメタをファイルに書き出し,計算プログラムを起動してその標準出力を読む,というプログラムを書くことになる.

まあ大雑把に言うと,ファイルを書いて,ファイルを読むプログラムということだ.(正確じゃないけど.パイプもファイルのうちだということで.)ごく基本的なプログラムを書いたに過ぎない.

でも結局は,このような基本的なプログラムをきちっと書ける,ということが大事なのだろう.
去年,これを学生さんにやらせようとしたが,概念を理解してもらうだけでもとても苦労したし,結局最後まではできなかった.ところが自分でプログラムを書いてみると,問題は違うものの,機能面ではほぼ同じことが1日でできてしまった.
ごく簡単な機能を組み合わせれば,できる,ということなのだが,それをうまく伝えられなかったのだろうか.いやそれ以前に,「ごく簡単な機能を組み合わせる」ことが,学生さんには難しいのか.

Pyevolveの方は,付属の例題1(pyevolve_ex1_simple.py)をちょっと改造しただけで,実装することができた.自分で書いたプログラムは30行ぐらい.まぁつまりその程度の問題だということです.
たったその程度のことだけど,これで「遺伝的アルゴリズムを利用してパラメタを最適化した」と堂々と主張できるわけだ.

やり方はだいたい分かった.これからいろいろ使えそう.

2012年1月11日水曜日

一関・猊鼻渓

金野の実家,一関の名勝・猊鼻渓が紹介されています.

一関・猊鼻渓に行って来ました。(「福田萌オフィシャルブログより」)

テレビ放送はもう終わっているらしい.気づくのが遅かった.残念.

福田萌さんは岩手県出身のタレントさんです.さいきん,お笑いの人と熱愛報道されていました.
どうぞごひいきに。岩手県出身者がんばれ!


盛岡出身なのに「一関寒い」って….盛岡のほうが寒いじゃん.