- ベストアンサー
Linuxマシンの複数台による並列計算環境の構築
LinuxのPCが複数台、ルータ(ハブ)で接続されています。 これを用いて並列計算環境を構築したいと思います。サイトなどで調べたら以下のようにあっさりと書いてあります。 ○ OpenMPのインストール sudo apt-get install openmpi-bin openmpi-dev ○ 公開鍵認証を使い、パスフレーズなしで各ノードにsshでログインできるようにしておく。 その後は、実際に計算例などが出ていました。これだけで環境構築ができるらしいです。OpenMPだけでなく、MPICHによる環境の構築も出ていましたが。 そこで質問ですが、 1.OpenMPのインストールは複数台あるPCの中の1台だけでやるのでしょうか。それとも全部でやるのでしょうか。sudo ...以下のコマンドラインは各PC(ノード)でやるのでしょうか。 2.コンパイラは各PC(ノード)に個別にインストールされている必要があるでしょうか。 3.最近のGCCにはすでにOpenMPが含まれているとのことです。これは1つのPCでCPUを分割して計算する場合に用いるらしいですが、グリッドコンピューティングの場合、やはり別途OpenMPの環境設定が必要なのでしょうか。 4.gccの場合、gfortranもインストールされるようです。intel fortranで利用する場合、OpenMP(あるいはMPICH)の環境が設定できれば実行可能なのでしょうか。 5.OpenMPとMPICHによる並列環境が両方共確立しているということは無意味でしょうか。あるいは不可能なものでしょうか。使い分けができるかどうかということでもありますが。 6.話がころっと変わりますが、MACの場合、もっと簡単にできると聞いたことがあります。最近はMACにもgccが標準で入っているようで、1つのPCでの並列化はコンパイラにオプションをつけて実行できるようです。これが複数台のPCではどうなるでしょうか。 以上、よろしくお願いします。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
ANo.1のお礼欄について >OpenMPとOpenMPIが別物とは知りませんでした。 私も同じでした。MPIから知ったのですが、OpenMPはIが抜けた書き間違いだと思っていました。 >私が使用できるOSはubuntuかCentOSです Red Hat Enterpriseで動作が保証されているソフトウエアが多いので、二年ほど前にCentOS5で構築しました。 最近のCore i7はver6でないとIntel AVXが利用できないので、ver6に徐々に切り替えています。CentOS6がなかなか出なかったので、見切りをつけScientific Linux6に切り替えつつあります。(両方ともRed Hat Enterprise互換です) NFSはWindowsやMacの感覚とはずいぶん違うので最初は戸惑いました。ファイル共有は外付けのHDDみたいなイメージだったのですが、NFSに限らずLinuxの場合は、ディレクトリが外付けのHDDみたいな感じです。例えば/homeにNFSでマウントすると、/homeの中はネットワーク経由で他のコンピュータで、/usrは自分のコンピュータのHD, /optはネットワーク経由で別のコンピュータのような感じになります。 ANo.1にも書きましたように、webminを使えばGUIでtorque以外の設定はGUIでできます。
その他の回答 (1)
- ki073
- ベストアンサー率77% (491/634)
>OpenMPのインストール openMPではなく、openMPIです。全くの別物です。 >sudo apt-get install openmpi-bin openmpi-dev これはopenMPIです。正解です。 注意なのですが、openMPIはコンパイラのwrapperのようなものなので、このような入れ方をすると、多分標準のgccが適用されます。 他のコンパイラを使いたいのであれば自分でコンパイルする必要があります。 1 NFSなどでファイル共有すると便利です。私のところでは/homeと/optを共有しデータは/homeに、共通して使うバイナリは/optに入れています。 2 コンパイラはコンパイルを実行するノードだけで十分です。ただし、ライブラリ(libgfortranなど)は各ノードに必要です。 3 openMPは特にインストールの必要はありません。 4 intel fortranを使いたいのであれば、上で書いたようにそれを指定してopenMPIをコンパイルする必要があります。そのできあがったopenMPIの命令でソースをコンパイルすれば、バイナリができあがります。MPICHはちょっとちがいますが。 5 openMPIとMPICHは同じような機能のものです。コマンド名が重なりますのでどちら一方の方が 6MacもLinuxと同じです。openMPIかMPICHを使います。Lindaという選択もあります。(Linuxの場合も) 現在パソコン10台ほどでやっています。最近のCPUは4core程度ありますので、パソコン間で並列計算することは少ないのですが。 (同じCPU内であればopenMPで並列計算ができますし、コンパイラで自動並列化も可能です。もちろんopenMPIでもできますが) 実際に使っているのは NFS:各ノードのファイル共有 LDAP: ユーザーIDとパスワードの管理(一カ所で管理できる) openMPI: 最近はあまり出番がないのですが torque: タスク管理、自動的に空いているCPUにタスクを割り振ってくれます webmin: サーバの設定、便利です DHCP, BIND DNS: あれば多少便利、優先度は低い こんな感じでしょうか
お礼
回答有難うございました。 OpenMPとOpenMPIが別物とは知りませんでした。Iってプロポーショナル印字だと小さいのでパッと見で同じに見えます。これが別物だったとは。道理で話がおかしいと思いました。私の質問はそういう意味でOpenMPIに関することです。 NFSをして、実行ノードのみにコンパイラがあるとよい、しかしライブラリは各ノードに配る、ということですね。これらの手順を書いてあるサイトがないでしょうか。私は以前NFSさえうまく行かず挫折しました。NFSってウィンドウズのファイル共有のようなものだと思うので難しくないはずですが。 私が使用できるOSはubuntuかCentOSです。もし付加情報がありましたらよろしくお願いします。