• 締切済み

PCの並列化

自宅のPCで今SOTECを使っているのですが、 しょっ中フリーズするようになって困ってます。 新たにパソコン本体を買いたいと思っているのですが、 今まで使用していたSOTECと新しく購入したPCを並列化して、 計算能力を高めるとかそのようなことってできるんですか?

みんなの回答

  • Quant
  • ベストアンサー率18% (23/122)
回答No.10

#1です。 以前、広島国泰寺高校科学部物理班の生徒がKNOPPIXでクラスタマシンを作って話題になっていたのを思い出しました。可能かも知れませんね。

回答No.9

>PCを並列化して、計算能力を高めるとかそのようなことってできるんですか? 原理的にできるかできないかっていえば「できます」になります。 DCOM とか CORBA とかの仕組み(技術)は既に存在するためです。 しかしそれは、それを最初から考慮されたアプリケーションに実装されて初めて可能なことなのです。なので一般の人がワードやエクセル、DVD閲覧、DVDのエンコードなどを行う場合には無理でしょう。そのような機能を実装した市販アプリが発売されれば別ですが、今のところ聞いたことがないです。 将来、そのような仕組みを組み込むことが流行ったり、当たり前のことになると アイドル状態にある別のPCの演算能力を使えれば、随分便利になっていいですね(^^)

noname#39234
noname#39234
回答No.8

統合的に利用できる方法は現実的に無い。 ってところですね。次点として… そのSOTECがフリーズするのが OSに起因するものなのか?それとも熱暴走やHDDの不具合 あるいは特定のアプリケーションによるのか? そのへんにもよると思いますが 限定的に、そっちに仕事を回すことはできます。 ただし、電気代や設定コストと管理コスト面でお徳かどうか… たとえば、うちには、三台目のPCとしてDebian GNU/Linuxで起動し vncserverが動いているPCがあります。 これは、メインのデスクトップPCからVNCによって 遠隔操作し、二台目のPC上にあるMPEG2データを MPEG4に変換する作業専用に使っています。 究極的には、LANアダプターのネットワークブート機能を使い HDDレスで二台目のPCのHDDから起動するのが理想ですが そこまではやっていません。 似たようなことはWindows等でもできるでしょうし WindowsMeのPCなどであれば、Linuxに入れ換えることで 安定動作できる場合もあるかもしれません。

  • noranuko
  • ベストアンサー率46% (620/1332)
回答No.7

クラスタコンピューティングで調べれば、複数のPCを使って処理能力を上げる方法はわかります。 しかし、一般的な処理向けではないので普通の人には余り意味のあるものではありません。 これは研究目的などで大きな計算能力の必要な人が、比較的ローコストでシステムを構築するのに使われます。 しかしPCを2台にし、その管理を人間がきちんと行うことで快適度を上げることはできます。 たとえば1台は重たく時間はかかるけど、最初にやることを指定してしまえばほっといても大丈夫な処理 (動画エンコードとか、録画専用機、CD/DVD焼きとか) を任せておいて、もう一方はWebブラウズやゲームなど常に操作するものにうまく使うといった使い方です。 用はPCでの処理を手動で分散してやるわけです。

  • 2531kbps
  • ベストアンサー率13% (183/1333)
回答No.6

ご希望のような処理をさせるなら、1つのPCになにか1つの重い処理だけをさせる。他の必要な処理を別PCでひきうける。ようにすることでしょう。 例: PC(A)に、画像1000枚解析、処理時間30時間をさせる。 30時間待つ間、PC(B)で、その他の処理すべて = インターネットに接続したり、メールを見たり、リバーシで遊んだりする。 --------------------------------------- 脱線してしまって恐縮ですが、質問者の疑問・希望はもっともだと思います。1台の高性能PCより、まあまあのPCを数台用意した方が効率が高い場合もあります。 私は、ネットワーク接続したPCが5台必要な、コンピューターゲームをどこかに作ってもらいたいです。対戦相手の思考を別コンピューターにやってもらえばよりエキサイティングなゲームになりそうです。 オンラインゲームでも、サーバーの負荷分散につながるような複数PCの同時ログインとかあってもよいのではないかと思いますね。

  • popesyu
  • ベストアンサー率36% (1782/4883)
回答No.5

おそらく誤解していると思いますが、現在、Windows上でソフトウェアレベルで複数のPCに分散処理させるような一般的にも利用されているアプリケーションは数えるほどしかありません。 例えばスパコンでも数百年数千年かかるような天文学的な計算を行う際に、その計算を複数に分割して、パソコン100台、1000台で行わせるというようなものです。 既に話にあがっているSETI(宇宙からの電波を分析することで宇宙人を探索するプログラム)やUD(白血病などの病気治療に役立つたんぱく質を探すプログラム)が有名ですが、他にはZIPのパスワードをクラックするソフト何かもあります。 クラスタリングとして特殊なシステムで分散処理を行わせるシステムもあるにはあります。例えばデータベースの処理や、サーバーなどで用いられていますが、こういうのは数百、数千万のお金をかけて大企業が構築するものですから、一般人にはあまり関係ありません。 お金をかけずにWindowsで組むクラスタシステムも今では(昔はUNIXでしかできませんでしたが)割と格安でできるようですが、どちらにせよその目的は大規模計算をどうやってさせるかというためのものです。

  • Eureka_
  • ベストアンサー率41% (5065/12243)
回答No.4

分散処理を考慮してデザインされたソフトなら高速化できる可能性はありますが、家庭向けとは言えない範疇になるのではないでしょうか。 そもそもソーテックマシンのフリーズ頻発が解消しない限り、分散しても負荷が偏在する気もします。 #家中のマシンにUD(白血病研究の分散処理を行うソフト)のクライアントをインストールしている人間の言う事じゃないかも。>家庭向けじゃない

  • 2531kbps
  • ベストアンサー率13% (183/1333)
回答No.3

すぐには無理だけど、そうなるようにシステムを作れば可能です。 単純にSETI@homeを1台で1つずつ同時に動かすというレベルならすぐです。Photoshopの画像処理の半分を隣のPCにやらせるなんてのは、まず無理です。 自作のプログラムなら、なんとか可能っぽいですね。必要なパラメーターを隣のPCへ送り、計算が終わったら結果を返してもらえばよいのだから。

  • a-yoshi
  • ベストアンサー率34% (222/645)
回答No.2

>今まで使用していたSOTECと新しく購入したPCを並列化して、 計算能力を高めるとかそのようなことってできるんですか? →今、お使いのWindows XP等がインストールされている普通のパソコンに対してですよね。出来ません。 ネット上に接続されているパソコンを使って、ある演算処理を分散して処理をさせる。というようなプログラムは存在していますが、パソコンの処理そのものを高めることはできません。 と思います。

  • Quant
  • ベストアンサー率18% (23/122)
回答No.1

並列化ができるかどうかはわかりませんが、私は、パソコン4台で小規模cellコンピューティングを行っています。 単に、ひとつの数値計算プログラムを4つの範囲に分割してそれぞれやらせているだけですが。もうすぐ最速の一台が2ヶ月間の計算を終了して結果を出そうとしています。

関連するQ&A

  • PC(並列化)の処理能力について

    現在、linux環境下で並列計算機を用いて、電子状態計算等の並列処理を行っています。 処理速度、処理能力についてですが、 計算ホストを1台から2台に増やすと、倍の処理能力を持つようになりました。 しかし2から3、3から4台にしていくと、今度は比例的にではなく、 ある処理速度に収束するような結果となりました。 これは、何が原因と考えられるのでしょうか? もしくは計算規模が小さいために、このような結果となるのでしょうか? 例えば、計算する空間を増大すると比例的に処理能力が 向上するのでしょうか? ご面倒かと思いますが、回答お願いします。

  • 個人PCで並列計算ができるか?速くなるか?

    並列計算を個人のPCで行って計算速度が上昇するか、また容易に並列計算ができるかについて伺いたいです。特に知りたいことは (1)プロセッサによらず並列計算をすると速くなるものか?どのプロセッサが速くなりやすいとかありますか? (2)初心者でもとっつきやすい並列計算ができるソフト、ライブラリは何か?(いくつか候補をあげてそれぞれの利点を説明して下さると有り難いです) (3)計算がどれくらい速くなるか? 以下状況と質問内容を具体的に説明します。 現在私の利用可能なプロセッサがCoreDuoのノートPC1つ、Core2Duoのデスクトップが1つです。(後者は学校にあるものなので、勝手にノートとつないで両方で計算させることができるかは不明ですが。。。)(1)についてはこのプロセッサではどうかを特に教えて頂きたいです。 今現在数値的にやらなくていはいけない処理は、行列の積、逆行列、および固有値を求めることです。行列が複素数であり、疎でもないですし、かなり行列のサイズが大きい(100×100以上にはなる)ので困ってます。 将来的にはモンテカルロ法にもお世話になるので、「行列演算」「モンテカルロ」について並列計算でどれくらい速くなるか(3)で教えて下さると助かります。 何卒よろしくお願い致します。

  • Javaで並列計算

    並列計算クラスタの購入を勧められられています。 ところで、Javaで並列計算をやる方法ってあるのでしょうか?簡単でしょうか? 今のところ、シリアルの計算を複数流す、くらいしか使う方法が思いつかないのですが、並列計算がJavaで簡単に出来るのなら、ソースコードを作り直そうと思っています。 経験者の方か、知識がある方ががいらっしゃったらうれしいです。

  • 並列計算について

    あまりパソコンに詳しい方ではありません。 今、linuxが入ったパソコン(CPU:Intel(R)Core(TM)i7 CPU970@3.20GHz,コア数12, メモリ:5.8GiB)で数値計算をしています。コンパイラはgfortranです。OpenMPを使って、並列計算をしています。 例えば、スレッドを5使って一つのプログラムの計算したとします。次に別のプログラムをスレッドを5使って同時に計算したとします。 CPUモニタで確認すると、合計12スレッド中、10スレッドが使用率100%になります。 しかし、計算時間はそれぞれ倍ぐらいになってしまいます。結局、プログラムを1 つずつ計算するのと同じ時間がかかります。また、使用するスレッドは5ぐらいが最適であることがわかっています。(それ以上多くしても計算時間が多くなるだけ)。つまり、12スレッド中7スレッドは常に仕事をしていません。 原因、及び解決方法はあるでしょうか?

  • 並列処理についてですが、

    並列処理についてですが、 SCOREという並列環境を構築するソフトで、4つのPC(CPU:Quad Core)を、並列化させ、 ある逐次プログラム(C言語、ラプラス方程式を差分法で解くプログラムですがプログラム内容はあまり関係ないので、あるプログラムとさせていただきます)を並列処理させたところ、 1つのPCで、4つのプロセッサを使用し、合計4ノードで並列処理を行った場合と、・・・(1) 4つのPCで各PC1台につき1つのプロセッサずつ、合計4ノードで並列処理を行った場合では、・・・(2) 同じ4ノードであるにかかわらず、 (2)がノード数に比例的に演算性能が良くなることに対して、 (1)の場合、ノード数が増えても関数log(x)(雰囲気です)をグラフにしたような形で、演算性能がうまく良くなりません このような質問を以前したところ、 ・スレッド切り替えのオーバーヘッドが影響しているのではないか ・実行環境が違うことと、ひとつのプロセスですべてのコアを占有する thread はコアを2個使えば2倍、3個使えば3倍それぞれ速くはならない。一方、PCを組み合わせて使う場合、それは完全に独立しており、データ並列のために分割されて計算量が縮小された分、PC組み合わせ数にほぼ比例して速くなる。 という回答をいただくことができました。 なんとなくで意味は分かるのですが、何卒PC初心者なもので、あまり理解することができません。 ここからが質問です。 ・「スレッド切り替え」とは一体どういったものなんでしょうか ・いただいた回答で、「ひとつのプロセスですべてのコアを占有するスレッド」とはどういうことでしょうか このことについて教えていただきたいです。スレッドとは、など部分部分での単語は調べてみましたが、 どういったように動いているのかが分かっていないせいか、上記質問のようなことが分かりません。 回答をせっかくいただいたのに自分の語彙力のせいで度重なる質問をさせていただくことを申し訳なく思いますが、みなさん回答の方よろしくおねがいします。

  • 並列計算の並列性がCPUの数が増えるほど上がる?

    並列計算をMPIを用いて行っているのですが、 CPUを2個使ったの時に掛かった計算時間を1として、 4、8、16  と使用CPU数を増やしていくと、計算速度が 1.5、10、20 と、CPU数以上に伸びていきます。 普通、CPU数以上に早くなる事は無いと思っていたのですが、1つ当たりのCPUで使用するメモリ、配列サイズが少なくなったせいで計算速度が上がることがあった、あり得る事なのかな?と思ったのですが・・・実際にCPU数よりも計算速度の速度比が上がる事はあり得るのでしょうか? 計算結果をみると、正しいです。

  • 新しいPC本体と古いPC本体の接続

    質問させてください。 この度、新しいPCを購入しました。古いPCは画面が故障してきたため、その古いPCのHDD本体を新しいPCの外付けHDDのように使いたいのですが、可能でしょうか? 新しいPC本体へのデータ移行ではなく外付けHDDとして使用し、データを保存したり読み込んだりしたいです。各PCの情報は以下、 ・古いPC OS:WindowsXP メーカー:SOTEC ・新しいPC OS:WindowsVista(16bit) メーカー:HP です。宜しくお願いします。

  • 並列化プログラムのコンパイル環境と実行環境が違う

    fortran77で物理計算をしています。 パソコンが2つあって、一つは個人で使うもので、もうひとつはスパコンです。 個人PCのコンパイラはifort、スパコンはfrtが入っています。 普段は個人PCのifortでコンパイルしてからスパコンに実行ファイルを転送して走らせています。 今のところこれで問題ありません。 このプログラムを並列化して計算時間を短縮しようかなとおもっています。 mpiなりopenMPなりでプログラミングして、(もしくはifortの自動並列化コマンドを使う) (1)ifortでコンパイルしたものをスパコンに送って走らせる方法 と、 (2)スパコン内のfrtでコンパイルして走らせる方法 では 実行速度は劇的に変わるものでしょうか? frtの使い方がイマイチわからずmakeが通らないので出来れば避けたいなと思って質問させていただきました。 勉強不足な点があると思いますが、よろしくお願いします。

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

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

    • ベストアンサー
    • Mac
  • 抵抗,コンデンサの並列記号

    抵抗の並列を表す時,よくRa//Rbと表記することがあるのですが,いくつか疑問点が出てきました。 1)並列を//で表すのは学術的に定義されているのか?   一般的に使用されているだけなのか? 2)抵抗とコンデンサでは並列時の計算方法が異なるが,   コンデンサの並列時もCa//Cbと表記しても良いのか? 3)//に対して直列を表す記号はあるのか?  (どこかで||を見たこともあるのですが,ほとんどみたことないです) 回答の程,よろしくお願いします。 また,参考HPがあればご紹介お願いします。