重要なお知らせ

「教えて! goo」は2025年9月17日(水)をもちまして、サービスを終了いたします。詳細はこちら>

【GOLF me!】初月無料お試し

マルチコアのCPUの挙動について教えて頂きたいのですが。
自分のパソコンはWindows7とLinuxのデュアルブートです。
Linuxはconkyを入れて、デスクトップ上でCPUやメモリ、ネットワークなどを監視しています。
そこで気が付いたのですが、クアッドコアをLinux上で見ていると、ほとんどCore2ばかり動いています。
他は10%いかないとかでもCore2は30%以上とか動いています。
ではWindows7のタスクマネージャ上ではどうかと見ると、Core1とCore3がメインで動いて、逆にCore2はあまり動いていません。
自分としては、4つのCoreを均等に使えればいいのにと思うのですが、これらの挙動を自分で管理できないものでしょうか?
例えばプログラミングで複雑な計算をさせるとかの際にも、そういったように自ら割り振りできればいいなぁと思うのですが。
Windows、Linux共にアドバイスあれば教えて頂きたいと思います。

A 回答 (2件)

>これらの挙動を自分で管理できないものでしょうか?


1個のソフトしか動かないOSならできなこともないでしょうが、複数のソフトを人とOSが勝手に動く環境ではとうてい管理できないでしょう。
上記については異論もあるでしょうが、現実無理です。


マルチコアのCPUを上手に使うにはまずOSが対応しており、使うソフトが対応(並列処理等)していないとだめです。

でもそれだとせっかくのマルチコアCPUがもったいないのでOSが対応していればCPUが自動でコアの使い方を決めてくれるようにはなっています。

>Windows、Linux共にアドバイスあれば教えて頂きたいと思います。
基本の考え方が同じです、ソフトの対応が問題になります。

私の答え 気にしないのが良いでしょう
    • good
    • 0
この回答へのお礼

ご回答ありがとうございました。
参考になりました。

お礼日時:2014/01/03 15:12

そこそこCPUを使っている状況であれば、通常は長時間の平均を取れば均等になるはずです。



WindowsもLinuxもプロセス毎に動くCPU(コア)を限定できます。類縁とかアフィニティと言います。
Windowsだとタスクマネージャのプロセスタブで、プロセスを右クリックして「関係の設定」で設定できます。プログラムから別プログラムを起動するときにもアフィニティを設定できたはずです。

Linuxだとtasksetコマンドで設定できます。プログラム中でセットするならsched_setaffinity, sched_getaffinity システムコールのようです。
    • good
    • 0
この回答へのお礼

ご回答ありがとうございました。
参考になりました。

お礼日時:2014/01/03 15:11

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!