複数のマックPCによる数値計算の並列処理

このQ&Aのポイント
  • マックPCを複数台つないで並列処理を勉強するためのシステムを考えています。
  • マックは通常のPCとして使ったことがありますが、サーバー的なこともできるのでしょうか。
  • 複数台のPCを1つのディスプレイ、キーボード、マウスで操作する切替器にはどのようなものがあるでしょうか。
回答を見る
  • ベストアンサー

複数のマックPCによる数値計算の並列処理

パソコンを複数台つないで並列処理を勉強するためのシステムを考えています。複雑な物理計算をゴリゴリやるというよりも練習用というところがポイントです。最近、マックでやるのが一番簡単と聞きました。Linuxと違ってディストリビューションとか、マシンの個性とかがマチマチでなく、規格が同じなので前提となる条件が常に一定のはずです。 しかし、まだ、マシン本体すらありません。 場所を取らないMACminiを5台ぐらい購入してスイッチングハブで接続すればできるのでしょうか。 gcc44、OpenMPなどを実装すればできるとのことでしたが、このようなことが解説されているサイトをご紹介いただけると助かりますが。一応、マックのターミナルからいろいろ取り寄せてやるのだろうと思いますが、その部分だけ見たら操作はLinuxと同じようなので馴染みがあるのですが。 ただ、できればFortranでやれるようにしたいです。 また、マックはサーバー的なことができるのでしょうか。すなわち、ネット上の別のPCからtelnet, sshなどの端末のサービス、ftpのようなファイル転送です。マックは通常のPCとして使ったことがありますが、そのような目的で使ったことがありません。 話題が飛びますが、複数台のPCを1つのディスプレイ、キーボード、マウスで操作する切替器にはどのようなものがあるでしょうか。 以上、よろしくお願いします。

  • Mac
  • 回答数4
  • ありがとう数5

質問者が選んだベストアンサー

  • ベストアンサー
  • sat000
  • ベストアンサー率40% (324/808)
回答No.1

単に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_Distribution/ 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-commercial-software-download/ ここからダウンロードできます。 FORTRANも付いてます。 ただ、フリーであるというライセンスをインストールする必要があったと記憶してますので、登録は必要です。 OpenMPにもMPI(MPICH)にも対応してたんじゃないかなという気がしますが、はっきり覚えてません。 なお、MacのOSはMACHというUN*Xベース(というかMax OS Xの元になったNextStepがMACHを使っていた)なので、サーバーモジュールは含まれていても不思議ではありません。 が実際に含まれるかどうかはAppleの主義・思想によります。 多分含まれているんじゃないですかね。 最後の切替機はKVMスイッチャというやつですね。 何社かから出てます。 私は会社ではATENのを使ってます。 性能は使ってみた記憶からはかなり良かったと思います。 定評あるPGI(これは商用、商用の割には安い)に比べて遜色ない印象があります。

skmsk19410
質問者

お礼

回答有難うございます。 他の人に聞いた話だとMACがラクだということでした。MACだと元質問にも書いたように手順が確立していれば、ハード・ソフトの個人差が無いので何も考えずに先例どおりにやっていれば良いと思ったのですが。 クラスタ用のOSというものがあるのですか。RocksクラスタというOSにすれば作業が早いということでしょうか。ちょっとブラウザの調子が悪くてこのサイトに行けませんでした。RocksクラスタというのはLinuxの1種でしょうか。またマシンはWindows互換とのことなのでいわゆるDOS/V系(MAC以外のいわゆる普通のPC)で動作するということでしょうか。このようなものがあるという情報は始めてです。 インストールしたいと思いますが、コンパイラはどのようなものになるのでしょうか。Fortranが希望なのですが。 よろしくお願いします。

その他の回答 (3)

  • ki073
  • ベストアンサー率77% (491/634)
回答No.4

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つあれば簡単に分けられますので。

  • ki073
  • ベストアンサー率77% (491/634)
回答No.3

練習用ではなく、本番用として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の設定ができますのでご参考に。

skmsk19410
質問者

お礼

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

  • kenken-1
  • ベストアンサー率43% (13/30)
回答No.2

最近のMacにはXgridというのが載っていてそれを使うと分散コンピューティング環境は比較的簡単に構築できるかと思います。 > また、マックはサーバー的なことができるのでしょうか。 できます。全く心配いらないです。 Lion Serverの載ったサーバ向けのMac miniもありますし。

skmsk19410
質問者

お礼

回答有難うございます。 このことを解説しているサイト、書籍、その他の資料を入手する方法をご存知でしたら教えて頂きたいと思いますが。 また、前提条件としてどのようなものがあるでしょうか。NFS, NIS,などのLinux系の環境が整っていることが前提でしょうか。そこまでは必要ないと思いますが。 また、コンパイラはフォートランでもOKでしょうか。よろしくお願いします。

関連するQ&A

  • 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ではどうなるでしょうか。 以上、よろしくお願いします。

  • 簡易並列処理の勉強について

    ずっと以前からパソコンを並列化して計算の効率を図りたいと思っていましたが、実現しませんでした。 今日的にはグラフィックプロセッサで高速計算する時代のようですが、できれば勉強のために今一度挑戦したいと思っています。オーバーヘッドが問題で全然速くならないというのでも体験できるといいと思っています。 条件としては全く同じ仕様のPentium4のマシンが4台あり、スイッチングハブにつながれている状態です。 OSはLinux(ubuntu)で、intel のfortran compiler, intelの並列環境のソフト(名前はど忘れ)だったり、CentOS+MPI(Mpich?) だったりなどいろいろとやってみてダメでした。何でダメだったのかは忘れてしまいましたが。NFSとかNISなどその他の環境設定も付帯的に絡んでいたように思います。おそらく並列環境のセットアップではなく、その他の環境のところで引っかかったように思います。 とにかくOSも再インストールしていいですから、最初から並列処理の勉強のためのマシン設定を実現したいと思います。これだけやればよいというセットがないでしょうか。貧弱な環境ですが、勉強したいだけなので、是非やり方をご教授願いたいのですが。Linuxのディストリビューションのセットでインストールしただけでとりあえず実現できるというようなものだと大変有難いです。あるいは適当な文献とか紹介サイトなどでも結構です。 以上、よろしくお願いします。

  • 最近のtelnetとX-Windowですが

    15年ほど前、Slackware全盛だったころにLinuxを数年していたことがあります。 その時、2台のLinuxマシンの片方からtelnetでもう一方のLinuxマシンに入ってX-Windowを立ち上げたりしていたのですが。 最近はそういうのはないのでしょうか。 あちこちみてもそういうのは書いてないみたいで。 ないはずはないですよね。 Linuxマシンが2台で、その間でSSHでできるのでしょうか。 今の環境はLinuxとWindowsの2台なので自分で確認はできません。 WindwosマシンからPuTTYでLinuxの端末を立ち上げたりして、それでLinuxの方をshutdownしたりはできてます。 どなたか解説お願いします。

  • PCを複数台つなげたい

    こんばんわ。お世話になります。 複数台のPCをネット接続させたいです。 しかし、ADSLモデム(AtermDR202C-U)には LANケーブルの差込み口が一個しかありません。 複数台ネット接続させる際、 ルータとかいう機器を使えばいいのでしょうか? それともスイッチングハブというものを使えばよいのでしょうか。 または別の機器を使うのでしょうか。 無線LAN以外でお願いします。 また、IPアドレス(?)の設定はADSLモデムで行うのでしょうか? プロバイダはイーアクセス PCはVistaビジネスが1台、XPプロフェッショナルが1台、Linuxが1台です。 よろしくお願いします。

  • パソコンの遠隔操作するためのVNCについてお尋ねします。遠隔操作の内容

    パソコンの遠隔操作するためのVNCについてお尋ねします。遠隔操作の内容が分からないのですが、手元にあるPCを利用しながら遠方のマシンに対してコマンドを送って仕事をさせるということでしょうか。 その場合、コマンドによって生じるメモリの消費とか発生するファイルはすべて遠隔地のマシンが負担するということでしょうか。そうしますと、telnet, sshと同じで遠隔地のマシンはサーバということになるのでしょうか。 例えば、コンパイラがインストールされているマシンが遠方にあってファイル共有でファイルを転送し、VNCによって接続してコンパイル、実行するというような計算サーバみたいなことをVNCでもできるのでしょうか。まるでtelnet, ssh, ftpですね。しかし、遠方の出力画面も手元のPCで見ることができるということだとすれば、unixで言うところのXを飛ばすということと同じでしょうか。 また、そのサービスを利用する場合の環境設定などはどのようになるのでしょうか。サーバ側としてはどのようなユーザ管理になるのでしょうか。 VNCを誤解しているかもしれないので解説をお願いしたいのですが。wikiで調べたのですが、telnet, sshとの区別が分かりませんでした。ただ、telnet, VNCは平文で操作するのでセキュリティには気をつける必要があるとのことでした。 よろしくお願いします。

  • インターネットが使える小さなLinux

    テキストベースで、ネットに接続できSSHでログインできるだけのLinuxマシンを作りたいのですが、どのディストリビューションがいいでしょうか? また、最低どのぐらいのHDの容量が必要になりますでしょうか?

  • 500MB以下でインストールできるLinuxのディストリビューション?

    古いパソコンがあり、ハードディスクも1Gきっている? とてつもなくおんぼろなマシンにLinuxを入れようとしましたが、Fedora Core1でさえ最低2GB必要でした。 この時点で唖然としましたが、昔もっと少ない容量の頃、知り合いがLinuxを入れて喜んでいましたが、 最近のディストリビューションで、インストール時に500MBをきるものはあるのでしょうか? テキストベースの操作でも構いませんが、最低Perlぐらい、欲を言えばgccは入れたいのですが、そんなものはあるのでしょうか?

  • web上でLinuxのアカウントを作れるCGI等探してます。

    Linuxサーバーのアカウントを web上の操作で作成できるようにしたいのですが、 どなたかスクリプトかCGIかありましたら 教えていただけませんでしょうか。 web上でなくても、GUIで操作できる Telnet SSHでも結構です。 OS:RedHat 7.0J よろしくお願いします。

  • CeneOS4.4を入れたがそのマシンにSSH/FTP接続できない

    表題のとおりなのですが、 CeneOS4.4を入れたのですが、ほかのマシンから、そのマシンにSSH/FTP接続できません。(なお、IPアドレスで接続しようとしています) なお、pingが通っていることは確認済みです。 なお、2つのマシンは、両方とも社内LANにあります。 SSH接続をしようとしている元のwindows(のテレターム)は、社内のほかのLinuxマシンにSSH接続できているので、SSH接続もとマシンの問題ではないことは確実です。 また、CentOS4.4をインストールしたときは、グラフィカルモードで、 すべてデフォルトでインストールしました。 他に何か設定が必要なのでしょうか? なにかほかのディストリビューションでは、 特に設定せずにうまくいったような記憶があるのですが・・・気のせいかも。。。 どなたか、お助けいただければ幸いです。

  • WindowsからMacOSXにSSHログインできない

    puttyを使ってLAN上のMacOSXへsshログインしようとすると 「ネットワークエラー接続が拒否されました。」 となります。そこでLinuxからためしてみましたら ssh 192.168.0.3 ←マックのアドレス ssh: connect to host 192.168.0.3 port 22: Connection refused このようにやはり接続できません。どうしたら接続できますでしょうか? ちなみに、マック側からはLinuxマシンにssh接続できるのですが‥ port 22: Connection refused と出るのでポートを開ければ良いのかとは思うのですが、開け方がわかりません。よろしくお願いします。