Home > 一般 > Work Stealing な nqueen をクラスタで動かしてみた

Work Stealing な nqueen をクラスタで動かしてみた

  • 2007-12-26 (Wed) 17:56
  • 一般

クラスタが暇そうにしていたので SMP でないところでもちゃんと work stealing が動くかなと試してみた.

work stealing のプログラム自体は一般的な divide and conquer を対象にした形に書いてあるので,お題として nqueen 問題を選んで n=21 あたりで動かす.空の盤面からスタートするルートタスクをルートプロセスにおいて計算開始.タスクの展開は5段階目まで行って,それ以降はシーケンシャルに解く.

こんなセッティングでノード数170位(CPU数にして308個)を使って計算した.各々のCPUは Pen4 Xeon 2.4GHz or 2.8GHz 程度で,n=21 のときに 54分くらいで答えが返ってきた(mpichがsshを張る時間を含んでるかもしれない).対称性とか無視して全部計算してるので遅いかもしれない.そもそもシーケンシャル部分が遅いかもしれない.ま,いいか.

とりあえず300CPU使ってても stealing がうまく動くという確認はできた.計算終了のタイミングのずれが最大で1分強あったらしいけど,全体として負荷分散もうまく出来たらしい.タスクの展開のリミットを変えて粒度を小さくすれば差もなくなるでしょう.オーバヘッドと引き換えにだけど.

なにはともあれ,クラスタの温度を一日中32度だったのを38度まで上昇させたことと,ganglia のレポートで cpu_idle の画面を真っ赤にしたとことが一番の成果でしょう.これまでは 300を超えるCPU使ったことなかったし.あとは,CPU308個はうまく動くけど,少し増やして316個を使うようにしたら mpich が ssh コネクションをうまく張れなくなる(エラー出しまくる)っていうのを体験したのも収穫か.とりあえず mpich2 とかで暇なときに試してみよう.

★下記に2つの英単語をスペースで区切って入力してください

Home > 一般 > Work Stealing な nqueen をクラスタで動かしてみた

Search
Feeds

Page Top