• ベストアンサー

複数のコンピュータで仕事を分散するには?

複数のコンピュータで仕事を分散する方法を勉強し,実際に試してみたくて,小さなコンピュータ(シンクライアントや10年くらい前のノートPC)を合計5台集めました. できたらOSはPuppyLinuxで統一したいと思います.次のようなことをする,手法,技術,テストできるフリーソフトの名称やWEBサイトご教授願います. 1)複数のコンピュータでWEBサーバー業務を分散処理する方法や管理するプログラム. 2)数値計算を複数のサーバーで分散処理して,統合する方法や管理するプログラム. 3)SETI@homeのように,不特定多数のコンピュータの処理能力を管理する方法やプログラム.

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

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

分かる範囲で、 2) MPIやLindaなどを使って分散メモリ型の並列計算をします。 http://ja.wikipedia.org/wiki/Message_Passing_Interface MPIではopenMPI http://www.open-mpi.org MPICH http://www.mcs.anl.gov/research/projects/mpich2/ がよく使われています。 フーリエ変換ソフトのFFTW3などを始め多くの科学計算ソフトが対応しています。 一方Lindaは http://ja.wikipedia.org/wiki/Linda スクリプト言語で使えるものもありますので、手軽に試すにはこちらの方が簡単かも。 GAUSSIANなどがLindaを使っています 3) BOINCが使われています。 http://boinc.oocp.org/indexj.php こちらの方は実際には使ったことがありません。 最近では小規模な場合は、共有メモリ型のopenMPで済ませる場合が多いです。こちらの方が簡単に並列化できますので。

ys11_ok
質問者

お礼

早速のご回答ありがとうございます.ご回答者様は,プロフィールなどから研究機関の専門家の方とお見受けしますが,お忙しいのに恐縮です. 毎日仕事で使うノートパソコンと,データセンターやスパコンの画像を見比べて,複数のコンピュータで仕事を分散する方法の単純な疑問から出発した,個人的プロジェクトです. 一台のパソコンでは手に負えないような仕事を,複数のパソコンが自動的に負荷を分散し,こつこつ仕事をこなす姿をイメージすると,ちょっとワクワクするのは,私だけでしょうか? ご教授いただいた,用語や技術を一つずつ,こなしていきます.

その他の回答 (4)

  • mokotann
  • ベストアンサー率57% (55/95)
回答No.5

失礼します。 >第二次世界大戦,互いに戦った日米将兵が語る番組 「バトルライン 1963 TBS 土曜」で検索を。 もし必要なら再質問を。アマゾンで買えます。今現物見てますよー。 おじゃましました m(_ _)m。

ys11_ok
質問者

お礼

お礼が遅くなって申し訳ありません. ご回答ありがとうございます.

回答No.4

1)複数のコンピュータでWEBサーバー業務を分散処理する方法や管理するプログラム. 複数の並列に稼働しているWEBサーバの前に、一つのロードバランサーを導入して、負荷を分散させるやり方が一般的ではないでしょうか。

ys11_ok
質問者

お礼

ご回答ありがとうございます.連絡遅くなって申し訳ありません.「ロードバランサー」ですか. メーカー製品は,随分高価なもののようです.「ロードバランサー フリーソフト」で検索すると沢山のWEBページにヒットしますので,当方のシンクライアントで稼動しそうなものを物色してみます.

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

No.1, 2です >複数のパソコンが自動的に負荷を分散し,こつこつ仕事をこなす姿をイメージすると,ちょっとワクワクするのは,私だけでしょうか? 目に見えて速くなればワクワクしますよ。並列化で3倍程度速くなればすごい感じがします。 そういう意味ではNo.2のソフトはワクワク感がないかも。それでも並列化されていなくてシングルcoreでしか動かないソフトを、10台のパソコン(4cores x 10台)に総数で1000個くらいtorqueに突っ込んだらものすごく早く結果が出てたのにはワクワクしました。

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

No.1に書いた分散処理は1つのプログラムを複数のコンピュータでするという方法です。 プログラム自体が並列計算できるようになっている必要があり、結構難しいところもあります。 スーパーコンピュータは基本的には共有メモリ型と分散メモリ型の並列計算を組み合わせたものですから、プログラミング技術の基本は同じようなものですが 私のところはMPIを使えるようにしておりますが、通信のオーバーヘッドが大きく主に共有メモリ型並列計算を利用しています。 タスクをコントロールするのにtorqueを利用しており http://www.adaptivecomputing.com/products/open-source/torque/ 空いているコンピュータを見つけてプログラムを実行してくれるものです。実用的にはこのソフトが大活躍しています。

関連するQ&A