- ベストアンサー
家庭での複数パソコンの並列接続方法とは?
- 家庭で複数のパソコンを並列接続する方法について教えてください。MPICHなどのソフトウェアがあるようですが、GUIを使った方法も知りたいです。
- 家庭内にある複数のパソコンを並列接続する方法について、Windows7やUbuntuなどのOS別に紹介します。LANケーブルやハブを使って接続し、IPアドレスはルーターで自動割り当てする方法を説明します。
- 複数のパソコンを並列接続し、動画のエンコードなどの作業を効率化する方法をご紹介します。フリーウェアのソフトを使用して、家庭内のパソコンを活用しましょう。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
No.2です。 No.3でunacyoさんが書かれていますが、手で分けられれば結構効率があがります。空いているコンピュタを見つけて自動実行してくれるものです。Windowsにもフリーであったはずです。エンコードするソフトがCUIでないとなかなか難しいですが、ソフトウエア自体を並列化する必要はないので、すぐにでもできる訳です。 私自身は十数台のLinuxで分散処理をしています。 MPIを使ったコンピューター間の分散処理をできるようにはしているのですが、ギガビットEthernetレベルではなかなか速くなりません。インターフェースを買えば多少速くはなるのですが、パソコンよりは高いものになってしまいます。今のところはパソコンを増やす方がコストパフォーマンスがよいのでそのようにしています。 1台のコンピュータの中では並列化をしているのですが、コンピュータ間では実際のところやっておりません。No.3で書かれているコンピュータの空きを見つけて実行できるバッチシステムを入れています。かなり効果があります。 No.2にも書きましたがCUDAなどに対応しているGPU(グラフィックボード)を利用できるなら結構速度がでそうです。まだテスト段階ですが、並列化ができるソフトであれば数倍は速くなるような感じです。 エンコードはGPUに適した分野のように思います。
その他の回答 (3)
- unacyo
- ベストアンサー率51% (35/68)
やったことがなく、ググった程度のツールの紹介で、極め付けにできたらラッキー程度の話なので、興味が無ければ読み飛ばしてください。 アプローチを変えて、動画の部分ごとに各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
お礼
回答ありがとうございました。 私も以前、この方法を見かけたことはあったのですが… 正直なところ面倒くさくて(笑 DVDのエンコでは使えませんしね… でも、この方法なら確実ですね!! 再圧縮もしなければ劣化はしないですし…
- ki073
- ベストアンサー率77% (491/634)
ハードウエア的には速くなるかは別として分散処理はできますが、ソフトウエアの方が問題なのです。 どういうレベルでやりたいのか分かりませんが、ソフトウエアがバイナリでしか手に入らないのであれば、対応していないものはどうしようもありません。ソースコードが手に入るか、ご自分で書かれるのであれば、頑張ればある程度速くできるかもしれません。 複数のパソコンで分散処理するのは結構たいへんで、並列化できるプログラムができたとしても、余程できのよいプログラムでないと1台のときと変わらないことになります。 1台のパソコンで速くする方法を考えるのがまず考えることです。 パソコンレベルでの高速化では、まずはSSEを使ったベクトル化、CPUコア全部を使った共有メモリ型並列化です。どれもプログラムが並列処理できるようになっていないとシングルCPUでSSEも使っていない処理になってしまします。最近ではGPUが安価に利用できますので、それを使って高速化するのが手っ取り早いと思います。この場合も同様に並列処理できるプログラムでないと全く効果がありません。ここまでやってうまく行けば10~20倍程度の高速化は期待できるかもしれませんが、現実には.....。
お礼
回答ありがとうございました。 >SSEを使ったベクトル化、CPUコア全部を使った共有メモリ型並列化です。 自分にはわからないので、ゆっくりと調べて行きたいと思います…^^;
- Higurashi777
- ベストアンサー率63% (6257/9821)
ひとことで言うと「無理」ですね。 分散コンピューティングはまだまだ敷居が高く、ほとんどが大学や研究機関向けのものです。 フリーウェアでの提供ではありますが、基本的にはLinuxベースであり、しかも構成に応じてカスタマイズが必要であるため、かなり専門的な知識が必要となります。 すなわち、現状のWindowsベースで構成されている各PCの構成はそのままで、フリーウエアで分散化したい、というのは基本的には無理と思った方が良いでしょう。 お金をかけてもWindowsベースでなんとか、ということであれば、1台Windows Serverを導入してクラスタリングを組めば分散処理システム自体の構築は可能です。但しOSが10万円以上します。 更に、動画エンコード用ソフトがクラスタリングに対応している必要がありますが、そのような動画処理ソフトは民生レベルではおそらく存在しないでしょう。 諦めて「一番高速な1台」を動画エンコード処理専用にした方が良いかと思われます。 以上、ご参考まで。
お礼
回答ありがとうございました。 やはり難しいのですね… 私もネットで探していて大変そうでした… エンコードも動画の長さ×2時間くらいで終わってるので、我慢しようかと思います… Windowsサーバーは記憶の片隅に入れておきたいと思います。 (あれが10万するとは…(笑)) たしかに動画編集ソフトが対応していないのでは意味がなかったです。。。
お礼
回答ありがとうございました。 手動で分割できるようにやって見ます… ギガビットでもダメなんですね… 確かに本体内で通信している速度とかを考えると納得はできますが…(笑