プロが教える店舗&オフィスのセキュリティ対策術

パソコンを複数台つないで並列処理を勉強するためのシステムを考えています。複雑な物理計算をゴリゴリやるというよりも練習用というところがポイントです。最近、マックでやるのが一番簡単と聞きました。Linuxと違ってディストリビューションとか、マシンの個性とかがマチマチでなく、規格が同じなので前提となる条件が常に一定のはずです。

しかし、まだ、マシン本体すらありません。
場所を取らないMACminiを5台ぐらい購入してスイッチングハブで接続すればできるのでしょうか。
gcc44、OpenMPなどを実装すればできるとのことでしたが、このようなことが解説されているサイトをご紹介いただけると助かりますが。一応、マックのターミナルからいろいろ取り寄せてやるのだろうと思いますが、その部分だけ見たら操作はLinuxと同じようなので馴染みがあるのですが。

ただ、できればFortranでやれるようにしたいです。

また、マックはサーバー的なことができるのでしょうか。すなわち、ネット上の別のPCからtelnet, sshなどの端末のサービス、ftpのようなファイル転送です。マックは通常のPCとして使ったことがありますが、そのような目的で使ったことがありません。

話題が飛びますが、複数台のPCを1つのディスプレイ、キーボード、マウスで操作する切替器にはどのようなものがあるでしょうか。

以上、よろしくお願いします。

A 回答 (4件)

単にOpenMP入れただけだと、1台の中の複数コアを使って計算を行うだけになりますよ。


というか、単に並列計算させたいだけなら、コンパイラのAuto parallelizationを使うとできますよ。
細かい指定はOpenMPの命令(ディレクティブ)を埋め込んだ方がベターですが。

で、それはさておき趣旨は、1台でマルチコア・マルチスレッドプログラミングというわけではなく、クラスタマシンを構築したいということですよね?
クラスタマシンは計算ノードと呼ばれるマシン(実際にジョブを実行するマシン)以外に、それらを管理(ジョブのスケジューリング、タスク制御、使用状況確認等の管理を行うマシン)する管理ノードと呼ばれるマシンが1台必要です。
5台なら、1台を管理ノード、残り4台を計算ノードに割り振るとちょうど良いです(計算ノードは2の倍数で使うことが多い)。
管理ノードのおかげで、マシン間通信をこのタイミングで行ってなどの細かいことを気にしなくて済みます。
で、どういうOSを使うかですが、MacOSのことを詳しく知りませんが多分全く無理で、クラスタ用のOSを使います。
代表格は、Rocksですかね。
http://www.rocksclusters.org/wordpress/
http://en.wikipedia.org/wiki/Rocks_Cluster_Distr …
SunのGridEngineというジョブスケジューラも付いてきます。
入れたその日からとりあえず使い始められるでしょう(設定等はお好みなのでそれなりに時間がかかるかも)。
ただ、Windows互換マシンじゃないとおそらく動作しません (32、64bitには対応)。
確実に動作させたいなら、MacじゃなくてintelかAMDのWindowsマシンの方が良いでしょう。
本来はノード間の通信速度をかせぐために(ボトルネックになりやすい)、数~10 Gbps程度のHUBで接続します。
マシン間の通信は、CPU自身のデータ通信と同じように高い頻度で発生しますので、ここが遅いと、即、計算速度低下につながりますが、勉強用ということなので、1 GbpsのHUBでも構わないでしょう。
次にコンパイラですが、GNUのコンパイラは各種CPUに対応している分、特定のCPUへの最適化が弱く、遅いと思うので、ここは非商用限定でフリーのLinux用Intelコンパイラはどうでしょう。
http://software.intel.com/en-us/articles/non-com …
ここからダウンロードできます。
FORTRANも付いてます。
ただ、フリーであるというライセンスをインストールする必要があったと記憶してますので、登録は必要です。
OpenMPにもMPI(MPICH)にも対応してたんじゃないかなという気がしますが、はっきり覚えてません。

なお、MacのOSはMACHというUN*Xベース(というかMax OS Xの元になったNextStepがMACHを使っていた)なので、サーバーモジュールは含まれていても不思議ではありません。
が実際に含まれるかどうかはAppleの主義・思想によります。
多分含まれているんじゃないですかね。

最後の切替機はKVMスイッチャというやつですね。
何社かから出てます。
私は会社ではATENのを使ってます。
性能は使ってみた記憶からはかなり良かったと思います。
定評あるPGI(これは商用、商用の割には安い)に比べて遜色ない印象があります。
    • good
    • 0
この回答へのお礼

回答有難うございます。
他の人に聞いた話だとMACがラクだということでした。MACだと元質問にも書いたように手順が確立していれば、ハード・ソフトの個人差が無いので何も考えずに先例どおりにやっていれば良いと思ったのですが。

クラスタ用のOSというものがあるのですか。RocksクラスタというOSにすれば作業が早いということでしょうか。ちょっとブラウザの調子が悪くてこのサイトに行けませんでした。RocksクラスタというのはLinuxの1種でしょうか。またマシンはWindows互換とのことなのでいわゆるDOS/V系(MAC以外のいわゆる普通のPC)で動作するということでしょうか。このようなものがあるという情報は始めてです。

インストールしたいと思いますが、コンパイラはどのようなものになるのでしょうか。Fortranが希望なのですが。

よろしくお願いします。

お礼日時:2011/11/27 12:01

ANo.3のお礼欄について



webminはsafariなどのbrowserを使ってGUIで設定ができるソフトです。検索すれば日本語の情報も出てきます。
以前はosxでも使えていたのですが、osxは独自の発展をしてきましたので、インストール、起動ははできるが、設定にはほとんど使いないようです。今のOSXでちょっと試してみるという訳にはいかないようです。

私の様な素人にとっては、macintoshの場合に標準で用意されている機能は使いやすいが、新たにインストールするとなるとかなり大変なイメージがあります。だから、OSX serverを購入してそれをサーバーとして使うのなら、(実際に設定したことはないのですが)多分、わりと簡単にできるかもしれません。サーバーではなく普通のOSXをサーバーにしたいというのでしたら、Linux+webminの組み合わせた方が簡単だと思います。

現実的な選択として、
まずはopenMPIで作ってみて徐々に構成を考えていくとすると、
今お持ちのOSXにXcodeとopenMPIを組み込んで(finkなどを使うと簡単に入ります)試してみるのはどうですか。
openMPIは同じパソコン内で動きますし、single coreでも動くはずです。
それができる様になれば、2台に増やす。その時に、必要があればNFSでファイルを共有するということで、とりあえずは他のソフトは必要ないと思います。

もう一つの選択として、先にハードを最小限そろえるとすると、
OSX serverの入ったMacと普通のMacを1台ずつ用意し、上と同じことをする。うまく行けば台数を増やすということでどうでしょうか。(この構成ではANo.2に書かれているXgridが試せます)。
もしLinuxに変更するとしてもOSX serverはファイルサーバーとして利用できますし、コントロールノードとしても十分使えますので、無駄になることはありません。
OSをそろえると、バイナリレベルで互換性がありますので管理は楽なのですが特に問題はないと思います。計算ノードは揃えないとかなり大変です。

mac miniサーバーのもう一つの欠点としては、LANポートを1つしか使えないということです。
LANを分ける時に、LANポートが2つあれば簡単に分けられますので。
    • good
    • 0

練習用ではなく、本番用として2年ほど前に同じようなことを検討しました。

結論としてはLinuxで構成することにしました。
Macintoshのカテゴリ-ですので、Macのことにも触れておくと、Mac miniのターミナルを計算システムに命令を出すために使用しています。Linuxと同じソースコードを使るのでちょっとしたテストもできますし、Linuxで多用されているX-windowが使えるからです。今のところメンテナンス以外ではLinuxマシーンを直接触ることはありません。質問の最後の方で切り替え器のことがありますが、このような運用では今のところ必要としていません。

Mac miniは小型で場所をとらないので良い選択なのですが、Coreが2つしかないので非力だということ、並列処理に関する情報が少ない、それと多くのソフトがLinux(Redhat)で動作保証されていることが主な原因です。
今のシステムはLinux(CentOSとScientific Linuxの混在),OpenMPI, NFS, torque, LDAPなどを使っています。
コントロールノードはファイルサーバーを兼ねていてCore2Duoの古いマシンで、計算ノードはCore i7とCore i5です。全て4 core構成です。
それと、ノード間の並列となるとLANのトラフィックが多いので、構内LANとは分離する必要があります。分離方法はいろいろあるでしょうが、私のところはコントロールノードにLANボードを1枚追加して分離しています。
場所をとるのが嫌でしたら、小型のLinuxがインストールできるマシンを(多分Mac miniに近い大きさのものはあるはず)OSなしで購入し使ってはどうですか?
Mac mini(Core2Duoの時代)でも1週間くらい100%負荷で連続計算をしていましたが特に問題なかったので、ファン付きのディスクトップマシンなら連続運転は問題ないと思います。
それとwebminを使うと簡単にLinuxの設定ができますのでご参考に。
    • good
    • 0
この回答へのお礼

回答有難うございます。
Linuxを使って構築するというのがほぼ定番だとは思います。ただ、"OpenMPI, NFS, torque, LDAP"というようなものを個別にインストールするときトラブルに見舞われてしまい、先に進めなくなったのです。これくらいは個別で設定できるスキルが前提なのかも知れませんが、バージョンの食い違いなどによる手戻りで全く前に進めなくなったことがあります。また、必ずしも必要ないものとか、あったほうが便利なもの、必ず必要なものなど重要度もいろいろだと思います。

もしLinuxでやるのであれば、構築できるセットがパッケージとなっていてライブラリのバージョンの違いとかによるトラブルが一切ないものであって欲しいと思います。webminとはそのようなものでしょうか。

そういう個別の事情から開放される(完全ではないにしても)のがMacだと思うのですが。いかがでしょうか。

お礼日時:2011/11/28 23:48

最近のMacにはXgridというのが載っていてそれを使うと分散コンピューティング環境は比較的簡単に構築できるかと思います。



> また、マックはサーバー的なことができるのでしょうか。
できます。全く心配いらないです。
Lion Serverの載ったサーバ向けのMac miniもありますし。
    • good
    • 0
この回答へのお礼

回答有難うございます。

このことを解説しているサイト、書籍、その他の資料を入手する方法をご存知でしたら教えて頂きたいと思いますが。

また、前提条件としてどのようなものがあるでしょうか。NFS, NIS,などのLinux系の環境が整っていることが前提でしょうか。そこまでは必要ないと思いますが。

また、コンパイラはフォートランでもOKでしょうか。よろしくお願いします。

お礼日時:2011/11/28 23:51

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!