research

私は実はこんな研究をしているのですね。


PCクラスターの構築

PCクラスターとは何ぞや?
と言いますと、簡単に言えば、

PC同士をつないで計算速度を上げてしまえ

って奴でどうやら1990年以降細々と流行しつつある研究だそうです。
俺が行っているCFD計算では、結果が出るまで相当時間がかかるので
計算能力を上げてしまおうという背景があるのですね。

構築方法は現在主流なのが

OS        LINUX(RedHat系)
Compiler     PGI
通信ライブラリ MPICH

上以外の構成でも構築可能だと思うが
誤作動する可能性があるので
流行に乗ってしまおうということで
LINUX & UNIX 初心者の俺が構築を担当してます。

まずは、dualCPU搭載マシンを2台準備
CPUはペンティアム3
現段階ではクロスケーブルで2台を双方向通信
networkカードは、イーサネット100ベース

マシンにRedHat Linux ver7.2をカスタムインストールし
NFSと言われるPC2台の間の共有フォルダー(ディレクトリ)を作成
FTPを組み込み
HDDのパーティションはNFSを設定する/homeに大半を与える。

ここまでは、PCを購入した業者の方に行ってもらいました。
当然の事ながら、俺がやり直す事は不可能に近い
おそらくPCのどこかにインストール設定方法が記述されている
ファイルがあるだろうから、後でそいつを確認しておこう。

次にPGIコンパイラをお試しライセンスでインストール
後日正式なライセンスの元インストールしなくてはならない。

最後にMPICHをインストール。

これも業者の方に設定して頂いたが
先程の正式ライセンス交付以後、
俺がMPICHのインストールを行わなければならない。

後日、PGIの正式なライセンスファイルが届くが
どうやら1ユーザしか使えないらしく
rootや他のユーザではPGIでコンパイル
できない契約が結ばれている…
出来れば、マルチユーザで計算させたかったのだけど
まあ、とりあえずライセンスユーザでやれるのだから
OKということで

さてMPICHを/usr以下のディレクトリで
インストールしようとしたところ
rootで全ての作業を行ったら
何故かmpiccしか動作しない
(何てこったい!C++って使ったことねえ
 ちなみにFortran90で計算を実施する予定)

業者の方から教えていただいた情報では

作業前にまず 
 rshを有効にする為に
  PGIライセンスのあるユーザの/home/ユーザ 
  で.rhostsを作成
 MPICHのコマンドパスを設定
  

インストール作業はこんな感じ
MPICHの圧縮ファイルをダウンロードし /use/local/srcに展開
# cd /usr/local/src
# tar xvzf mpich.tar.gz ←解凍ですね

このディレクトリでmpich-1.2.4が誕生

# cd mpich-1.2.4
# export F90=pgf90       ←環境変数設定です。
                    pgf90はPGIコンパイラでのf90コマンド
# export F90LINKER=pgf90  ←リンカーの設定
# ./configure --prefix=/usr/local/mpich ←コンフィグです。
                            インストール先を指定しました。
# make
# make install           ←これがインストール
# vi /usr/local/mpich/share/machines.LINUX
                   計算ノードの登録です。
ちなみにdefaultではmachines.LINUX ファイルには
インストールしたPC(俺の場合host)の名前が5行羅列してます
#
# 説明文らしきコメント行
#
host
host
host
host
host

これに対し俺のPCノードを登録する為編集
#
#
#
host:2
machine1:2

その後いろいろ調べてみると
失敗原因はPGIライセンスを持つユーザで
MPICHのインストールを行わなければならないらしい。
rootだと上手くいかない様だ…くそ、基本的なことじゃないか

対策としては、
そのユーザにroot権限を持たせるか
root権限が不要なディレクトリでインストールする
ことになると思う。
(初心者なのでこれぐらいしか思いつかない…)

まずユーザにroot権限を持たせるため
sudoコマンドを実行したが、makeできず…

次に MPICHの圧縮ファイルを/tmpで展開
こうするとインストール作業をPGIライセンスユーザでやれる。
ということで
インストール前に
/usr/local/mpichをそのユーザ所有に変更し
インストール開始!
画面を見ていると、何だか上手くいきそうな気がする。

ぬが、しかし、
machines.LINUXの編集を行うと
MPIテストコンパイルは成功するが
実行でPCが止まる
編集しないと、何故か
コンパイル、実行が可能で見事にCPU4台で
計算可能??

なんじゃこりゃ

とりあえず、ダウンロード先のサイトにあった
manualで確認しなければ(但し ALL ENGRISH)

あがが、ここまで判明するのに相当時間を食っている

その後の調査により
PGIコンパイラーのファイルがクライアント側PCに含まれていない
ことによって、エラーが起きているらしい

ということで
/usr/pgi


戻る