- PR -

デュアルコアCPU実装PCでのマルチスレッドの有効性について

投稿者投稿内容
unibon
ぬし
会議室デビュー日: 2002/08/22
投稿数: 1532
お住まい・勤務地: 美人谷        良回答(20pt)
投稿日時: 2006-07-12 20:14
まず、普通にシングルスレッドで動くプログラムを作って、それを1プロセスで動かした場合の CPU 使用率を測ってみてはどうでしょうか。シングル CPU で 100% に近い値になる(デュアル CPU ならば 50% 等、要はひとつのスレッドで CPU がフルに動く)ならば、マルチスレッドにすれば効果があるでしょう。もし使用率が高くないなら、この時点で、目論まれている処理はネックが CPU ではなくディスクI/Oにあることになり、マルチスレッドにしても効果はありません。

次に、上記のプログラムを複数CPU上で、複数プロセス(数は CPU の個数分)で同時に動かしてみて、CPU 使用率が 100% に近くなるかを調べてはどうでしょうか。これでうまくいくようなら、あとは単にプログラムをマルチスレッド対応にするだけで、効果は同じだと思います。

引用:

ヤマハブラザーズ兄さんの書き込み (2006-07-12 14:47) より:
→メソッドの入出口等でこまめにログは出力していますが、それを見る限り重複して
 いると思います。


ログ出力は、どれぐらいの頻度なのでしょうか。ログ出力のディスクI/Oの仕方にもよりますが、あまり頻繁だと、微妙にスレッドの状態が変わり、CPU 使用率が落ちることもあります。

#以下、あとで追加。
前半(「まず」〜「マルチスレッドにしても効果はありません。」あたりの部分)は、勘違いです。見当外れでした。分かりません。

--
unibon {B73D0144-CD2A-11DA-8E06-0050DA15BC86}

[ メッセージ編集済み 編集者: unibon 編集日時 2006-07-12 20:24 ]

スキルアップ/キャリアアップ(JOB@IT)