C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[3]: 関数デリゲートとスレッドの最適化について


(過去ログ 62 を表示中)

[トピック内 4 記事 (1 - 4 表示)]  << 0 >>

■35742 / inTopicNo.1)  関数デリゲートとスレッドの最適化について
  
□投稿者/ ハヤカワ (4回)-(2009/05/13(Wed) 10:13:15)

分類:[C#] 

C#において、関数デリゲートを使って呼び出したメソッドは
自動的にスレッドプールに登録されて実行される、ということですが、
このとき出来たスレッドの実行内容は、マルチコアのCPUに合わせて
ちゃんと最適化されているのでしょうか?

private void methodA()
{
   methodA_del del = new methodA_del(methodA_nakami);
   del.BeginInvoke(null, null);
}
private delegate void methodA_del();
private void methodA_nakami()
{
   //メソッドの処理内容
}

例えばこんな感じのコードを書いて、
methodA()
を別のメソッド内から実行した場合に、
methodA_nakami()
の処理内容はマルチコア向けに最適化
されるのでしょうか。

引用返信 編集キー/
■35752 / inTopicNo.2)  Re[1]: 関数デリゲートとスレッドの最適化について
□投稿者/ 渋木宏明(ひどり) (1149回)-(2009/05/13(Wed) 11:39:00)
渋木宏明(ひどり) さんの Web サイト
2009/05/13(Wed) 11:45:26 編集(投稿者)

> C#において、関数デリゲートを使って呼び出したメソッドは
> 自動的にスレッドプールに登録されて実行される、ということですが、
> このとき出来たスレッドの実行内容は、マルチコアのCPUに合わせて
> ちゃんと最適化されているのでしょうか?

あなたの言う「マルチコア CPU 向けの最適化」とは、具体的にどんなこと(効果?)を指しているのでしょうか?

引用返信 編集キー/
■35753 / inTopicNo.3)  Re[2]: 関数デリゲートとスレッドの最適化について
□投稿者/ ハヤカワ (5回)-(2009/05/13(Wed) 12:04:50)
No35752 (渋木宏明(ひどり) さん) に返信
> 2009/05/13(Wed) 11:45:26 編集(投稿者)
>
> あなたの言う「マルチコア CPU 向けの最適化」とは、具体的にどんなこと(効果?)を指しているのでしょうか?

複数のスレッドが同時に動くマルチスレッドのプログラムにおいて、
シングルコアのCPUでもマルチコアのCPUでも問題なく動作し、
マルチコアのCPUにおいてはスレッドがプロセッサに最適に
割り当てられてパフォーマンスが最大限向上させられる・・・
という感じです。

例のmethodA()のようなメソッドを作成して使用した場合に、
このような効果を期待できるでしょうか。
あるいは複数のスレッドをプロセッサに最適に割り当てる
方法がありましたら教えていただけないでしょうか。

引用返信 編集キー/
■35758 / inTopicNo.4)  Re[3]: 関数デリゲートとスレッドの最適化について
□投稿者/ 渋木宏明(ひどり) (1150回)-(2009/05/13(Wed) 13:19:42)
渋木宏明(ひどり) さんの Web サイト
2009/05/13(Wed) 14:00:03 編集(投稿者)

> 複数のスレッドが同時に動くマルチスレッドのプログラムにおいて、
> シングルコアのCPUでもマルチコアのCPUでも問題なく動作し、
> マルチコアのCPUにおいてはスレッドがプロセッサに最適に
> 割り当てられてパフォーマンスが最大限向上させられる・・・
> という感じです。

ふんわりした感じでいいなら「されてます」。

ただ、それがあなたが期待する「最大限」に達しているかどうかは分かりませんが。

OS, ランタイム, BCL の各階層に、マルチコアを利用する仕組みは含まれていて、非同期デリゲートなどのスレッドプールを利用するプログラムは、シングルコアのプロセッサでも、マルチコアのプロセッサでもプログラムコードを変更することなく動作します。

また、適切な記述が行われていれば、マルチコアのプロセッサではパフォーマンスが向上することが期待できます。

引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -