Last Update: July 23, 2010.
- Rocks 5.3をマニュアルに従ってインストールする。
- Frontendノードについてはこちら。
- Frontendノードとインターネットの間にルータを挟んでいる場合、プライベートIPアドレスを設定するとき、他のPCのIPアドレスと競合しない値を入力することに注意。
- Computeノードについてはこちら。
- Frontendノードにroot権限でログインし、と入力、"Choose Appliance Type"から("managed ethernet switch"でない場合)"Compute"と進んで"Inserted Appliances"の画面に進む。
# insert-ethers
- このとき、computeノードのPCの電源を入れても認識されず、フリーズした感じで、さらに、computeノードの方では勝手にPXEブートが進むということが生じることがある。この場合、computeノード側で"Ctl+Alt+Del"で再起動をする。そのうち、Frontendの"Inserted Appliances"にMACアドレスなどが表示されるはず。決して、Frontendノードの端末の右上のxをクリックして強制終了してはいけない。後で"# insert-ethers"と入力してもエラーが出る。どう対処するかはよくわからない。
- computeノードのインストールが終了したら、computeノードのbootの順番を、CD->Hardware->Networkにしておく。
- Frontendノードにroot権限でログインし、
- Frontendノードについてはこちら。
- mpiexecコマンドを実行するためにアカウントを作成する。
- ルートでログインし、次のように端末でコマンド入力。
- Computeノードをうまくインストールできていない場合、"ssh compute-0-0"等でアクセスするときにログインパスワードの入力を求められる。さらに、compute-0-0の"/home"にはusernameのディレクトリが存在しない。その場合、こちらを参考に。
# useradd username # passwd username # rocks sync users※ここで、usernameは追加するアカウント名、usernameはそのアカウントでログインするときに必要なパスワード。 - ステップ2.で作成したアカウントでログインし、mpdのパスを通す。
- デフォルトではmpdへのパスが設定されていない。ログイン時に毎回設定するのは面倒なので、次の行を".bash_profile"内の"export PATH"よりも前に書き加えておく。
PATH=/opt/mpich2/gnu/bin:$PATH※mpcih2が入っているのは"/opt/mpich2"フォルダ。 - ステップ2.で作成したアカウントのホームディレクトリに".mpd.conf"の名前でファイルを作成し、アカウント所有者だけが読み書きできるようにする。
- ホームディレクトリにmpdのリングを構成するホスト名をリストアップした"mpd.hosts"を作成。
- 1行に1ホスト名。例えば、次のように感じ
- ファイル名はなんでもOK。
hostname.of.frontend compute-0-0 - 各ノードでmpdデーモンを立ち上げる。
- 実行ファイル(execute.out)があるフォルダに各ノードにプロセスを振り分けるためのファイル"mf"を作成し、以下のようにホストを書き加える。
- ここでnproc1はFrontendノードに連続して与えるプロセスの数を表す。同様に、nproc2はComputeノードcompute-0-0に連続して与えるプロセスの数を表す。
- コロン(:)の前後にスペースはいらない。
- 詳しくはMPICH2 User's Guid (pp.9-10)を参照。
- ファイル名は何でもOK。"mf"はmachine fileの頭文字。
- "mpiexec"を使ってexecute.outを実行する。
- ここで、#procsは実行ファイルを走らせるプロセス数。MPIではランクが0から#procs-1まで振り分けられる。
- #procsはノードの数より小さい必要はない。大きくても、ラウンドロビンで実行。ただし、その場合、メモリの競合問題が大きくなるなどして計算速度が大きく低下する。
$ cd $HOME $ touch .mpd.conf $ chmod 600 .mpd.conf
さらに、エディタを使って次の行を書き加える。secretword=xxxxxxxxxxx
※"xxxxxxxxxxx”は自由に。ただし、ログインのパスワードと同じにならないように。
$ mpdboot -n #daemons -f mpd.hosts
※#daemonsは立ち上げるデーモンの数で、ノードの数より大きくない正の整数。
hostname.of.frontend:nproc1 compute-0-0:nproc2
$ mpiexec -machinefile mf -n #procs ./execute.out
Note 1: compute nodeの電源をオフにする方法
root権限でfront endにログインし、
# ssh compute-x-y
(省略)
# poweroff
とすればOK。(省略)
# poweroff
※root権限を持たないアカウントからsshを使ってシャットダウンすることはできない。
$ shutdown -h now
としても、コマンドが見つからないというエラーメッセージが表示される。Note 2: コンパイラにifortを使う方法
MPICH2のデフォルト・コンパイラはgfortranであるが、mpdbootで立ち上げることのできるデーモンの数が限られてしまう。一方、ifortではそのような弊害は生じない。また、マシン環境がインテルである場合、ifortを使う方が望ましいと考えられる。
ただし、Rocks Clusterにはifortがデフォルトで入っていないため、自分でインストールする必要がある。
Note 3: デーモンを停止させる方法
端末で以下の操作を行なう:
$ mpdallexit
No comments:
Post a Comment