• ベストアンサー

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

複数のコンピュータで仕事を分散する方法を勉強し,実際に試してみたくて,小さなコンピュータ(シンクライアントや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

  • ネットワーク分散エンコーダを知らないでしょうか?

    ネットワーク分散エンコーダを知らないでしょうか? 編集したビデオをネットワーク上の複数のPCに分散してエンコードを行いたいのですが,ご存じの方はいらっしゃらないでしょうか。 コンピュータは複数台あるのですが,そこまで計算能力が高くないためネットワーク上に分散してエンコード処理を行いたいと考えています。編集ノードは出来ればwindowsで,分散相手ノードLinux や BSD,windowsのいずれかで動作するフリーのプログラムを探しています。 検索をしているのですが,なかなか見つからないのでご存じの方がいましたら教えて下さい。

  • コンピュータを繋げる

    繋げるといってもgoogleの様に(いまはどうかわかりませんが)クラスタを構成して複数のサーバを常時稼働させ, 処理を分散させる方式をとりたいのですがどうやってそのアーキテクチャを構成したらいいかわかりません・・・ できれば簡単にできる方法がありがたいのですがなにかありませんでしょうか?

  • ネットワーク並列処理が出来るフリーウェア

    LAN環境で並列処理が出来るフリーウェアを探しています。 「何の処理をするの?」と聞かれそうですが、別に目的はなく、ただ複数台のCPUで何らかの計算をさせてみたいなぁと思っているだけなのですが…… 昔はzip暗号解析ソフトでそういうのがあったような気もするのですが、当時は家庭内LANなど遠い話で、HOST側プログラムを入手し損ねてしまいました。 円周率でも、2ちゃんねるのトリップ検索でもいいのでネットワーク分散処理が出来るフリーウェアがあれば教えてください。(クライアントにしかなれないSETI@home等は除く)

  • 垂直分散型システム

    資格の問題の答えに疑問があるので登校させていただきます。 タイトルの通り垂直分散システムの問題だったのですが。 垂直分散システムは 大型コンピュータと端末からなるネットワークシステム。この際、端末側はホストコンピュータとの通信機能だけを持っており、すべての処理はホストコンピュータ側で行なわれ、その結果が端末に表示される。高い処理能力を持つホストコンピュータに複数の端末がぶら下がるイメージからこのように呼ばれる。(アスキーデジタル用語抜粋)とあるのですが、その問題の答えでは A、一連の処理を複数の階層に分割し、その階層に対応するシステムが分散して処理を行う。 とあります。 しかし、私が選択したのは端末からネットワークを経由して遠隔地のホストコンピューターに接続し、ホスト側で一括したデータ処理を行う。という選択肢で、どちらかというと後者のほうが近い感じがします。 答えが間違っているのでしょうか?それとも単純に私の勘違いでしょうか?よろしくお願いします。

  • 自宅WEBサーバを複数台にする方法?

    無料ダイナミックDNSと光フレッツを使って,自宅WEBサーバのテスト公開をして来ました.文字と画像だけを表示する普通のWEBページとブログを運用しています. ある程度の成果を確認できたので,3~5台の複数のサーバを運用したいと思います.実現可能であれば,具体的な方法ご教授下さい. 従来の光フレッツとそのルータ「PR-400NE」と,無料ダイナミックDNSを使い,各サーバーは別ドメインを処理するものとします. 全体の制御やパケットの分岐に専用のサーバを設置しても構いません.各サーバ自体は,   CPU:600Mhz程度   MM:256~512MB   HDD:2~4GBのCF を持つシンクライアントとします.OSは,従来のPuppyLinux 4.3.1,WEBサーバ ソフトはデフォルトの「Hiawatha」をそのまま使えるとありがたいです. データ量は,地域のボランティア組織などの広報・連絡用ですので,極少量です. よろしくお願いします.

  • サーバー・サイジング・負荷分散について。

    曖昧な質問で申し訳ないんですが、、 webシステムのサイジングってどうやればよいんですかね? 推奨サーバ構成は・・・?とクライアントに聞かれて困っています。 広告配信システムで、 同時アクセス  300/秒 ←この数字が未知の世界なんです。 ほどは見込んでいます。 かなり重いです。サーバ運営に関しては素人なので、 困っています。最適なサーバ構成案ってどう作ればいいんでしょうか? バナー配信、アクセスカウントが特に重いので、そこだけ切り離して、 web/app(php)サーバ【バナー配信用】×n web/app(php)サーバ【ユーザ転送・統計処理用】 databaseサーバ の構成かな、、、とか思うんですが、いかがでしょうか? 広告配信鯖は特に強い鯖を用意する必要があると思うのですが、 どの程度のマシンが最適でしょうか? また、どのように見積もればよいでしょうか? また複数台に負荷分散した場合、その管理はどの程度 複雑なものになるのでしょうか? 一応テスト環境 (AMD Sempron2600 cpu 1.8G) にて、模擬プログラム(画像配信)をテストしたら、ロードアベレージ4ほどでした。 この手の問題は初めてですので、困っています。 是非是非、よろしくお願い致します。

  • 負荷分散装置について

    インターネットサービス(レンタル掲示板 など)を個人的に行う場合、専用サーバーをレンタルしてもいいのですが、負荷が大きくなった場合、複数のサーバーと負荷分散装置が必要になると思います。 しかしながら、負荷分散装置って数十万~数百万もして、非常に高いので、趣味としては手が出せません。 負荷分散装置を安く購入する方法、もしくは、負荷分散装置を使わずに、負荷分散させる方法ってあるのでしょうか? あと、負荷分散装置の有名な会社など、参考になるホームページを教えてもらえますでしょうか?

  • 分散処理ソフトとmpegエンコーダ

    2つのソフトを探しています。いずれもフリーのもので、動作環境はFedoraCore5を想定しています。 ・分散処理 gccでコンパイルする大きな計算処理を、複数のコンピュータで行うためのソフトを探しています。計算を複数のコンピュータで行い、その計算結果を親コンピュータに返すというものです。Cに限らず、Java版もあれば助かります。 ・mpegエンコーダ 複数の画像をmpegの動画に変換するソフトを探しています。 以上について、ご存知の方いらっしゃいましたらご教授願います。また、参考サイト等もありましたら併せてご教授下されば幸いです。

  • 複数のバッチを同時並行で起動したい

    環境:Windows2003Server バッチファイルの中に複数のバッチファイルを呼んでいるのですが、同時並行で実行することは可能でしょうか? サーバにCPUが4つあるのですが一回の実行ではタスクが分散されず1CPUで負荷がかかってしまって対応方法を考えています。複数のバッチに分けてから同時に実行した場合はタスクも複数になる為、処理が分散されるのではないかと思っているのですが・・・。 どなたかアドバイスお願い致します。

  • やりたい仕事がわかりません

    将来やりたいことが仕事になるのかわからなくて困っています. とりあえずコンピュータ系の学科の大学に通っていますがSEになってプログラムを書いて食べていこうとは思えず、かといってゲームの制作にも興味がありません. パソコンを使った仕事に就きたいと思っていますが、web制作やサーバ管理等で空港の仕事に携わりたいと思っています. 残念ながら英語は不得手です…