こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

複数のパソコンの並列接続(家庭規模)

複数のパソコンの並列接続(家庭規模)のやり方を教えてください。


自分で調べてみたところ、mpichなどというものがあるようですが…
自分には敷居が…高いかな…と…

CUIはほとんどいじらないので…

なので、できればGUIのものがうれしいです…
また、当方、LANについても基本的な部分しかわかりません…
その点についてもご教授いただけたら幸いです


接続を考えているPC…
1、Windows7 PRO 64bit
 CPU…Intel Core i 7 2600K
 1ギガビットLAN

2、Windows7 PRO 64bit
 CPU…Intel Core i 5 2500K
 1ギガビッLAN

3、WindowsVista Home 32bit
 CPU…Intel Celeron 2~3GHz
 1ギガビットLAN

4、WindowsXP Home
 CPU…Intel Celeron 585 2.16GHz
 100M LAN

5、Ubuntu 12.04 LTS(よくわかりません…
CPU…Intel Celeron (Vistaのと同じくらい)
LANアダプタ規格不明(オンボード)

1、2、5は自作です。

家庭内にはカテゴリ5eのLANケーブルが這っています
各ハブは1ギガビット対応のものです。

IPアドレスは、ルーターのほうで自動で割り振られるようになっています。
ただし、1のPCのみはサーバーとしてグローバルに解放している部分もあるので、
ルーターのほうでIP固定(MACアドレス判別?)になっています。

基本的には、すべてデフォルトのままです。
ルーターのほうで21番と80番のポートを1のパソコンにポート転送しています。

各PCのファイヤウォールは手動ではいじっていないはずです…



並列化のためのソフトですが、フリーウェアのものでお願いします。

作業内容については、動画のエンコードがメインです。


よろしくお願いいたします。

投稿日時 - 2012-08-30 14:15:41

QNo.7671469

困ってます

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

No.2です。
No.3でunacyoさんが書かれていますが、手で分けられれば結構効率があがります。空いているコンピュタを見つけて自動実行してくれるものです。Windowsにもフリーであったはずです。エンコードするソフトがCUIでないとなかなか難しいですが、ソフトウエア自体を並列化する必要はないので、すぐにでもできる訳です。

私自身は十数台のLinuxで分散処理をしています。
MPIを使ったコンピューター間の分散処理をできるようにはしているのですが、ギガビットEthernetレベルではなかなか速くなりません。インターフェースを買えば多少速くはなるのですが、パソコンよりは高いものになってしまいます。今のところはパソコンを増やす方がコストパフォーマンスがよいのでそのようにしています。
1台のコンピュータの中では並列化をしているのですが、コンピュータ間では実際のところやっておりません。No.3で書かれているコンピュータの空きを見つけて実行できるバッチシステムを入れています。かなり効果があります。

No.2にも書きましたがCUDAなどに対応しているGPU(グラフィックボード)を利用できるなら結構速度がでそうです。まだテスト段階ですが、並列化ができるソフトであれば数倍は速くなるような感じです。
エンコードはGPUに適した分野のように思います。

投稿日時 - 2012-08-31 22:31:38

お礼

回答ありがとうございました。


手動で分割できるようにやって見ます…

ギガビットでもダメなんですね…
確かに本体内で通信している速度とかを考えると納得はできますが…(笑

投稿日時 - 2012-09-14 22:44:44

ANo.4

このQ&Aは役に立ちましたか?

2人が「このQ&Aが役に立った」と投票しています

回答(4)

ANo.3

やったことがなく、ググった程度のツールの紹介で、極め付けにできたらラッキー程度の話なので、興味が無ければ読み飛ばしてください。

アプローチを変えて、動画の部分ごとに各PCでエンコードさせて、それを最後に再エンコード無しで結合する、という手はどうでしょうか?いうなれば、手動並列化、といいますか、そんな感じです。

例えば、2時間の動画があったとします。この場合、PC2~4を使って、それぞれのPCにエンコード範囲を割り当ててエンコードさせます。PC2は最初から40分を、PC3は40分から80分の間を、PC4は80分から最後まで、と。すべて同じ画像サイズで同じエンコードパラメータです。
これを再エンコード不要の動画結合ツールでくっ付けてしまう。
最初は大変でしょうが、慣れてしまえばエンコード時間が激減!・・・すると思います。多分。
ツールの設定が3倍、結合にも少々時間が必要でしょうから、3台使っても1/3とはならないでしょうが、1/2程度にはなってくれないかな、と淡い期待があったりします。
(CUIインターフェースのエンコーダーがあれば、バッチファイルで設定の手間は減らせるかもしれません)

私は以前からこの方法を考えてはいたのですが、手持ちのPCが1台に減ってしまって実行できなくなってしまったことと、当時は再エンコード不要で結合させる手段がわからなく、結局ボツ案になってしまったのです。
もし暇があれば、いかがでしょうか?

なお結合ツールですが、ググった結果、去年のいまごろに編集無しで編集したいという質問があって、それに回答なさっている方がおられます。

こちら → http://okwave.jp/qa/q6875666.html

投稿日時 - 2012-08-31 21:20:30

お礼

回答ありがとうございました。

私も以前、この方法を見かけたことはあったのですが…
正直なところ面倒くさくて(笑

DVDのエンコでは使えませんしね…

でも、この方法なら確実ですね!!
再圧縮もしなければ劣化はしないですし…

投稿日時 - 2012-09-01 13:54:57

ANo.2

ハードウエア的には速くなるかは別として分散処理はできますが、ソフトウエアの方が問題なのです。

どういうレベルでやりたいのか分かりませんが、ソフトウエアがバイナリでしか手に入らないのであれば、対応していないものはどうしようもありません。ソースコードが手に入るか、ご自分で書かれるのであれば、頑張ればある程度速くできるかもしれません。

複数のパソコンで分散処理するのは結構たいへんで、並列化できるプログラムができたとしても、余程できのよいプログラムでないと1台のときと変わらないことになります。

1台のパソコンで速くする方法を考えるのがまず考えることです。
パソコンレベルでの高速化では、まずはSSEを使ったベクトル化、CPUコア全部を使った共有メモリ型並列化です。どれもプログラムが並列処理できるようになっていないとシングルCPUでSSEも使っていない処理になってしまします。最近ではGPUが安価に利用できますので、それを使って高速化するのが手っ取り早いと思います。この場合も同様に並列処理できるプログラムでないと全く効果がありません。ここまでやってうまく行けば10~20倍程度の高速化は期待できるかもしれませんが、現実には.....。

投稿日時 - 2012-08-30 17:42:44

お礼

回答ありがとうございました。

>SSEを使ったベクトル化、CPUコア全部を使った共有メモリ型並列化です。
自分にはわからないので、ゆっくりと調べて行きたいと思います…^^;

投稿日時 - 2012-09-01 13:52:28

ANo.1

ひとことで言うと「無理」ですね。

分散コンピューティングはまだまだ敷居が高く、ほとんどが大学や研究機関向けのものです。
フリーウェアでの提供ではありますが、基本的にはLinuxベースであり、しかも構成に応じてカスタマイズが必要であるため、かなり専門的な知識が必要となります。
すなわち、現状のWindowsベースで構成されている各PCの構成はそのままで、フリーウエアで分散化したい、というのは基本的には無理と思った方が良いでしょう。

お金をかけてもWindowsベースでなんとか、ということであれば、1台Windows Serverを導入してクラスタリングを組めば分散処理システム自体の構築は可能です。但しOSが10万円以上します。
更に、動画エンコード用ソフトがクラスタリングに対応している必要がありますが、そのような動画処理ソフトは民生レベルではおそらく存在しないでしょう。

諦めて「一番高速な1台」を動画エンコード処理専用にした方が良いかと思われます。

以上、ご参考まで。

投稿日時 - 2012-08-30 15:11:40

お礼

回答ありがとうございました。

やはり難しいのですね…
私もネットで探していて大変そうでした…

エンコードも動画の長さ×2時間くらいで終わってるので、我慢しようかと思います…

Windowsサーバーは記憶の片隅に入れておきたいと思います。
(あれが10万するとは…(笑))

たしかに動画編集ソフトが対応していないのでは意味がなかったです。。。

投稿日時 - 2012-08-30 16:54:17

あなたにオススメの質問