• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:マルチスレッドへの対応について)

マルチスレッドへの対応について

NAZ0001の回答

  • NAZ0001
  • ベストアンサー率29% (508/1743)
回答No.4

複数のプロセスが入っているとき、それぞれのプロセスがどれだけの処理能力を必要としているかどう判断するのか?。CPUが2つでは、プロセス間の処理能力必要量に格差があっても、無理やり1vs1の分配になってはしまわないか? ということを心配されているのでしょうか?。 タスクマネージャーのプロセスのところで、なんかのプログラムを右クリックしていただければ、「プログラムの優先度」が設定できます。もっと優先的に動いて欲しいと感じたのなら、それで優先度を上げればOKです(内部的には、もっと詳細にコントロールが可能です)。 このように、特定プロセスのロードバランスを設定するのは、プログラマー、またはユーザーです。CPUやOSが自動的に判別することはありません。 HDへの書き込みのように「軽くてもすぐに終えて欲しい」、TVのリアルタイムエンコード録画のように「重くても一定以上早く終える必要は無い」 等、プロセスの性質については、それぞれです。 性能を引き出すといっても、CPU使用率が100%以下の時には、CPUの能力がが十分足りているということですので。グラフのでこぼこを見て「ロードバランスが取れていない」というのは、違うと思います。前にも書きましたが。CPU使用率が余っているからとCDを高速再生しても無駄です。CPUとOSは、やるべきことをやるべきときに、淡々とこなしていくだけです。 >いや、無策では54以上のプロセスが共存していようとも >最適なロードバランスは望むべきもなさそうです。 1つのプロセスを、ハード的/ソフト的に自動的に分解して複数のCPUで動かすということは、考えられていません。前にも書いたように、「プログラマー/ユーザー」が決めることだからです。 近い将来に出てくるメニィコアプロセッサでは、必要ないCPUは休止するだけのことです。現在は未実装ですが、DualCoreのCPUでも、片方を休止するモードはノートPCで採用されるでしょう。従来のマルチスレッド処理をもって少数CPUでこなせるのなら、全部を動かす必要が無いです。 どうも質問の意図が、「常に全部のCPU使用率を100%でソフトを動かす方法はあるのか?」または「総てのCPUをつねに均等に動かす方法はあるのか」ということに読めてしまうのですが。「そんなことはしない」が回答となります。 1つのCPUを占有するようなプロセスなら、プログラマーがマルチ化して、CPUを増やす。マルチ化するほどではないプロセスはそのままで、使わないCPUは休む。 >利用されなければ絵に描いた餅同然ですよね? 使う使わないを決めるのは、プログラマーとユーザーですし、無理してフルタイムで使う必要は無いですし。使える使えないは、また別の話です。 この辺で、質問と回答で齟齬が出てしまったようですね。 >AMDは2CPU構成を選択したとか 選択なんてたいそうな物ではないです。IntelだってXENONでやっていますし。サーバーの世界では当たり前の手法です。4つとか8つというのは、バス幅の問題でやらないだけの話です。言ってしまえば「Intelがやっているから、対抗のために私も。でないとサーバー市場に食い込めない」程度の選択です。 以下、参考まで http://pc.watch.impress.co.jp/docs/2006/0822/kaigai297.htm http://pc.watch.impress.co.jp/docs/2006/0818/kaigai295.htm この人の記事は、ハード面で非常に有益ですので。バックナンバーを追っかけることをお奨めします、 http://pc.watch.impress.co.jp/docs/article/backno/kaigai.htm

Nouble
質問者

補足

>「常に全部のCPU使用率を100%でソフトを動かす方法はあるのか?」 インターフェースの余力を除いて考えた場合 処理がある限りは全力で終わらすべきだと考えています >「総てのCPUをつねに均等に動かす方法はあるのか」 処理が手空きになってどうしてもアイドルが入る場合があるでしょう なので常に100%を実現するには 無負荷のスレッドの選別という相当高度な(?)先読み技術が必要でしょうから 現状として100%稼働は無理なのかも知れません 同様に作業量の均衡も難しいのかも知れませんね しかし資源対効果を考えると コアとしては実装個分の資源を費やしているわけですから それなりのパフォーマンスを期待したくなるのは信条じゃないですか? 出来れば100%稼働で早く終わって欲しいし その為には「作業量の偏りがあっては駄目」と言うことになりますよね? 2個コアがあっても稼働率が60%と30%では コア1個の95%で構わないのでは? となるでしょ? 2コアが広く一般に受け入れられるには 「ほぼどんな時もその良さを感じる」 と言う要素がなければ 「使ったら病みつきになる」という受入条件が満たされなくなり兼ねないと感じます そうなると世論が「不必要」のレッテルを押し 折角の素晴らしい技術が風化するのでは? と、心配するのです

関連するQ&A

  • マルチスレッドに対応したソフトについて

    有料のソフトはエンコード系は概ね4コアに対応していると思いますが、 フリーソフトは多くても2コアまでの対応が多いように見えます。 フリーソフトで4コア以上対応しているはあるのでしょうか? (ブラウザは対応していたと思いますが。) また、ソフトを開発したことがないので分からないのですが、 マルチスレッドに対応させるのは大変なことなのですか?

  • マルチスレッド対応ソフト

    デュアルコアを使っている場合、 マルチスレッド対応のソフトを使っていると 2つのコアを使うので 早くなります。 マルチスレッド対応のソフトというのは エンコード系しかないのでしょうか? また、どのソフトがマルチスレッドに対応しているかという判断はどうやってしたらいいんですか? HTは擬似的なデュアルコアですが、 HTに対応していたら、 マルチスレッドに対応、 つまりデュアルコアでも効果が発揮できるのでしょうか? HTとマルチコアだと ソフト側の対応が違いそうな気がしますが。

  • NikonCaputure4.4ってマルチスレッド対応?

    NikonCaputure4.4ってマルチスレッド対応なのでしょうか? こんどCPUをDualコアにするので、気になって。 直接ニコンに聞けばいいのでしょうが、手っ取り早くこちらで質問させていただきました。 御存じの方いたら、お暇なときにでも…。

  • デュアルコアCPUはマルチスレッドに最適?

    デュアルコアCPUはマルチスレッドに有効と聞きますが、マルチスレッドとはどういうものでしょうか? (1)単純に、3Dゲームをし、ネットをし、同時にエンコードをし、同時に画像処理し・・・っていう作業の「マルチ」ですか? (2)それとも、単独アプリケーション自体にマルチスレッド対応(?)のものがあるのですか? よく、3Dゲームはシングルスレッドのため、デュアルコアCPUの優位性を引き出せないといいますが、上記(1)の場合に当てはまりますか?

  • TMPGEnc2.5 マルチスレッド

    TMPGEnc2.5という古いVerの製品を使っています。 マルチスレッドが使えるみたいなのですが、デュアルコアCPUや ハイパースレッディングに対応しているのかわかりません。 ご存知の方は教えてください。 もうひとつ質問なのですが、TMPGEncのマルチスレッド機能を使うには、 インテルとAMDどちらのCPUが効果的なのでしょうか?

  • 非マルチスレッドソフトの挙動

    デュアルコアを使っています。 マルチスレッドじゃないソフトでも両方のコアに均等に負荷が分けられていますが、これは正常なんですか? 一つのコアに負荷が集中するものだと思っていましたが。2つのコアに割り当てることは可能なのですか? しかし、マルチスレッドでないものは負荷が両方のコアに均等に掛かり50%までしか行きません。 しかし、対応しているものでは100%になります。

  • マルチスレッド対応CPUは有用?

    PC自作を考えているのですが、プロセッサーの選択について悩んでいます。 現在はメーカー製PCを使っていて、スペックは ・Windows Vista Home Premium SP2 ・Intel Core 2 Duo E7400 2.8GHz 2GB です。 そこで、今インテルのCore i7プロセッサー(i7-860など)に興味を持っているのですが、色々調べていると、 コアやスレッド数が増えてもマルチスレッド対応ソフトでないと性能の向上はみられないのではないかと気になっています。 私はPCで本格的なハイスペックゲーム等はせず、主な用途は ・ネットサーフィン ・動画再生・編集・変換 ・ちょっとしたゲーム という感じです。 私が動画変換に使うソフト等はマルチスレッドに対応していないようなのですが、果たしてクロック周波数が同じでも、コアやスレッド数が増えれば全般的な処理速度は向上するのでしょうか? また、Core i7シリーズにはターボブーストという機能があるようですが、これは対応するパーツが限られているのでしょうか?詳しく教えて頂けると嬉しいです。 現在、Core 2 Duoでビスタは快適なのですが、i7の導入によってPCの全般的なあらゆる動作がさらに快適になればいいなと思っています。

  • マルチスレッド対応のアプリケーションとは?

    CPUにインテルCore2Duoを使っています。 マルチコアを活かせる「単体」でのアプリケーションを知りたいのです。 (ウイルス検索しながらでもブラウジングがサクサクという内容ではありません) 特に動画エンコード関係と聞きましたが・・・ 動画エンコードアプリケーションでも、対応の可否はどうやったらわかりますか?

  • デュアルコアの使われ方

    デュアルコアCPUで マルチスレッド対応のソフトなら 2つのコアを使うと思うのですが、 非対応のソフトでのソフトで 2つのCPUにまたがって 処理することはあるんですか? もし、またがってしまうことがあるなら マルチスレッド対応ソフトと 変わらないような気がするのですが。

  • Dual CPUやHyper Threadding対応CPUの処理

    ・Dualコア CPU ・Hyper Threadding対応CPU ・通常のCPU を比較して”Dualコア CPU”対応のOSを使用しても ソフトが”マルチスレッド”に対応してなければ CPU処理に関して なるべく条件を 同じにした場合 大きな違いはあります?