• 締切済み

GIMPSに参加し始めたのですが

最近GIMSPに参加するようになり、Prime95でひたすら計算させています。 実行しているPCはCore2Duoを搭載しているのですが、実行している最中にちょっと気になったのでタスクマネージャーを起動し、パフォーマンスのタブを開いてみると、片方のコアしか稼動していませんでした。 どうやらPrime95は並列化されていないようです。 しかし、せっかくのデュアルコア。PCの前から離れたときなどは二つのコアをフル活用してほしい。しかし、単にプログラムをコピーして実行しただけでは、二つのプログラムが全然違う数値に対して計算をしているようでした。 できれば、一つの計算値に対して二つのコアで計算してほしいと思っています。インターネットでGIMPS参加している人のページを見ていて、チームを組んで複数のPCで計算している人もいるのを知り、同じことを一台のPCできないものかと思いました。 できないなら仕方ないですが、他のデュアルコアCPUをフルに活用する方法を教えてください。 また、このプログラムで演算を高速にするためには、Core2やPhenomなどのマルチコアCPUよりも、Pentium4などのクロック周波数が非常に高いもののほうが有利なんでしょうか?あわせて教えてください。 よろしくお願いします。

みんなの回答

  • fx70_2150
  • ベストアンサー率57% (123/213)
回答No.1

 一つのプログラムが、複数のコアを使うようにするには、マルチスレッド化しなければならず、非常に面倒なんです。  複数のスレッドで、一度に別々の計算をさせるのが、有効活用する近道といえます。 >このプログラムで演算を高速にするためには、Core2やPhenomなどのマルチコアCPUよりも、Pentium4などのクロック周波数が非常に高いもののほうが有利なんでしょうか?  このプログラムでは、同じ種類のコアなら、2コアで周波数の高いCPUが、4コアで周波数の低いCPUより、速くなります。  1コアCPUだと、このプログラムでフル活用できるのはいいのですが、操作を受け付けない状態になります。  Pentium4については、効率の悪いCPUなので、クロックが高くても、セレロンDよりましな程度です。  Core2DuoやPhenomより、高速なんてことは、ありません。

forbiddendoll
質問者

お礼

 その面倒さを超えれば便利になったり計算が速くなったりしないのかと思ったのですが、確かに各コア間でのやり取りが発生する分、単純に2倍の性能が出るわけではないのですね。  それなら各コアに別々に計算させたほうが効率は高いのでしょうか。メモリへのアクセスが2倍になるから、やはり性能が2倍になることはないでしょうけど。  なるほど、コアの種類によっても性能は変化するんですねぇ。そんなにPentium4が性能が悪いとは思ってませんでした。Pentium3時代からPCを使い始めたもので、Pen4使ったPCの快適さに感涙したのですが。。。  時代の変化ですかねぇ。  回答、ありがとうございました。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • マルチコアにおける電圧とクロック

    マルチコアCPUでコア毎に電圧を設定できるものは現時点であるのですか? クロックはCore2、Phenomでもできるようです。

  • 数値計算に適したCPU選び

    主にVBAで作成したプログラムを走らせるためのPCを購入する予定でいます。 プログラムは完全に直列計算なのでマルチコアであっても 一つのコアしか使わないので Core i7 の2GHzよりも Core i3 の3GHzの方が計算速度が速いと思いますがあっていますか?

  • マルチコアとスーパースカラの違いはコア数だけ?

    質問させてください。 CPUの高速化の技術として、マルチコアとスーパースカラというものがあります。 どちらも並列処理を実現するもので、 マルチコアはCPUのコアを複数配置する方法。 スーパースカラは1つのコアの中に処理系統を複数配置する方法。 というのはわかるのですが、それって結局同じことではないかと混乱しています。 CPUのコアの中には、演算装置、制御装置、レジスタなどがあると認識していますが、例えばスーパースカラの場合、その中のどれか一つが共有されているとか、そういうことでしょうか? ただその場合、共有するところは並列作業が実現できなくなると思うのですが・・・。 どなたかご存知でしたらお教えください。 以上よろしくお願いします。

  • マルチコアCPUの、コアひとつあたりの周波数

    マルチコアCPUは物理的にコアがわかれているのでしょうか もしそうならば、 デュアルコアCPUやクアッドコアCPUのコアひとつあたりの周波数はいくつになるのでしょうか 例えば、周波数が3GHzのデュアルコアCPUがあったとします ひとつあたりの周波数は1/2の1.5Ghzになるのでしょうか

  • PS3の演算能力をPCで活用する方法

    PS3の演算能力をPCで利用したいと思っています。 私はPCで演算ソフトを用いて、演算を行っています。しかし演算に時間がかかりすぎて困っています。 以前PS3を並列化させて高速演算の実行に成功したというニュースを見ました。そこでPCにPS3の演算能力を付加させたいと考えました。 ですがPCとPS3のCPUの並列接続の方法が分かりません。 そこでPCとPS3のCPUの並列接続の方法を教えてください。 PS3は分解し、最悪壊れても構いません。PCはwindowsXP(core 2 duo)とwindows7(i5)の二台がありますが、壊すことは決して出来ません。 C++言語とhtml言語はある程度理解できますが、CPUとGPUとの違いはあまり分からないような状況です。ちなみに扱っているソフトは、Matlab(行列などの計算)とPro/ENGINEER(設計ソフト)です。

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

    並列処理についてですが、 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とマルチコア

    マルチCPUっていつからあるんですか? 周波数的にPen2辺りからでしょうか。 今では個人が使えるデュアルコアというものがありますが。 マルチコアが出てきてもマルチCPUの需要はあるんですかね? サーバーでは並列に作業が進むから CPUの数は重要なのかなと思っていますが。 少なくても個人ではデュアルコア辺りで それ以上はあまり効果がなさそうです。

  • マルチコアCPUはコア数が多ければ多い程有利なのではないのですか?

    最近マルチコアのCPUをよく見かけます、 それで、例えば、Core2DuoとCore2Quadを比べた質問、についてですが、 この手の質問では、Quadはマルチスレッド対応アプリを使わなければ Duoと大きな違い感じられないという回答がよく見られます。 又、むしろ消費電力が大きくなり2コアに比べクロック数も低いので 対応アプリを使わなければ逆に4コアは不利であるという意見もあります。 しかしどうも疑問を感じます。 上記の内容はあくまで一つのアプリを動作させた場合の事を想定した物なのでは? ごく日常での使用ではコア数が多い方が有利なのではないですか? 私の考えとしては、まずPCを扱う際一つのアプリのみを起動しPCを使用する人はまずいないという事から、 使用中に他のアプリや別のプログラムを実行するという場合も大いに考えられますし、 実際にタスクマネージャなどを見てもOSを起動起動するだけでかなりのプロセスが実行されいくらかCPUを食っています。 するとその様なマルチコア向けのアプリケーションを使用せずとも多数のシングルスレッドのプロセス実行と共に 複数のスレッドが発生し、結果例え速度的な変化は感じられずともマルチコアの恩恵を受ける事が出来るのではないか? と、私は思うのですがこれは間違いなのでしょうか。 それとも実際は上記の内容は間違いでそう都合良くは出来ていない物なのでしょうか? 長くなってしまいましたが回答いただけると幸いです、よろしくお願いします。

  • CPUの性能評価の仕方は??

    こんにちは 最近パソコンのメモリの増設を始めに自作パソコンの製作を少し考えて います。そこで、CPUの性能の性能の評価方法を教えていただきたいの ですが、 CPU でIntelのCore 2 Duo 等色々なCPUが出ていますが、クロック周波数の高さ=演算スピード と考えていいのでしょうか? Core 2 Duo 等のデュアルコアのCPUは並列処理に長けていると聞きます が、CPUの性能を評価するに当たってどんな数値や機能を見ればいい のでしょうか? よろしくお願いします。

  • Core2 Quad とCore2 Duo の違いについて

    現在、PCの買い替えを検討しております。タイトルに書きましたように、Core2 Quad とCore2 Duo の違いについて質問があります。 現在、Pentium4 3GHz (Hyper-Threading(HT))のマシンを使っています。主な使用目的は科学系のソフトウエア、プログラムによる計算、処理です。BIOSでHTをOffにしたところ、CUPの使用率が50→100%になり使用できるメモリ量も上がり、今までできなかった重い計算ができるようになった経験があります(マルチタスクはそれゆえ重くなりました)。もちろん、1つのコアを2コアに仮想化しているだけなので当たり前なのですが。。。 そこで、質問なのですが、同クロック、同FBSのCore2 Quad とCore2 Duoを比べた場合、コア単体の性能は同一と考えてよいのでしょうか?使用しているソフトウエア、プログラムはマルチコアに対応しておりません。少しでも重い計算ができるマシンをと思っております。3.3GHzのCore2 Duoのほうが2.6GHzのCore2 Quadよりコア単体の性能は勝っているのでしょうか?よろしくお願いいたします。