スキップしてメイン コンテンツに移動

投稿

4月, 2010の投稿を表示しています

第47回 CLR/H 勉強会に参加してきた

2010/04/17に第47回 CLR/H 勉強会が開催されたので参加していた。 今回は「並列」がキーワードだろうか。人間の脳はマルチタスクは 2つまでが限界と研究結果が発表 されたらしいが、最近のCPUはどんな状況だろうか。 最新CPUの紹介と並列プログラミングの概要 インテルマイクロアーキテクチャー「Nehalem」 目標は「電源効率に優れたプロセッサー」 ハイパースレッディングテクノロジーが復活 キャッシュをいかに有効に使用するか、がアプリケーションのパフォーマンスに影響する 3次キャッシュ:占有か共有か インテルコンパイラ、VisualStudio2010 Core2Duo向けのアプリをQuadで動かすとパフォーマンスが上がらないケースがある 2010年、すべてのCPUが並列プロセッサになった。 Intellが提供するツール:Parallel Studio ハイパースレッドとターボブーストがチューニング作業では邪魔となる →チューニング中はOFFにするとよい マルチコア時代の並列プログラミング - Visual Studio 2010 による並列化・最適化技法 並列化は 今から「意識」するべき どこに使うかを考える モジュール化プロファイルは現在のプロジェクトにも効果的(並列に限らず) 並列化で苦労は増える 並列と同時実行は別 CLR4.0でスレッドプールの仕組みが変わった UMS(ユーザーモードスケジューラ)はC++のみ。64ビットのみ。 並列プログラミングの考え方(タスク・データ・順序) キャッシュを意識したプログラミングが必要 .NET Framework 4.0ではタスク並列ライブラリ(TPL)を使用 C++では並列パターンライブラリ(PPL)を使用 Threadを自分で作成するのはやめるべき(一つのThreadは高価) ラムダ式を使用すると並列化しやすい スレッド数の調整:IOに対しては制限したほうが良いかもしれない。CPUに対してはある程度自動に最適化されるが、一概には言えない セッション1でもセッション2でも「キャッシュを意識したプログラミングが必要」とのこと。 F#入門 ~関数プログラミングとは何か~ OCamlをベースに設計された