PLINQの資料

PLINQの資料を見つけました。

http://www.bluebytesoftware.com/blog/CommentView,guid,200c3151-fbd5-4bfe-bb1e-0d6b90c6442b.aspx

この記事からパワポ資料が落とせます。

以前、PLINQについて書いたときはUNIXのパイプライン的な並列化しか考えてなかったんで、それはあまり効率よくないってことを書いたけど、どうやらそれだけじゃないようですね。データを分割して並列に処理も行うようです。GoogleMapReduceを思い浮かべてしまいます。
ちなみにMapはLINQでいうとSelectで、ReduceはAggregateです。あと、Sumとかよく使いそうなAggregateものは用意されてます。
でも、1マシンでの並列実行しか今のところは考えてなさそう。まぁ、マシンの壁を越える前に課題が山積だとは思うので徐々に前進を期待。
それにしても、うまくいくんでしょうかねぇ。何スレッドに分割するか?とかどうやって決めるんだろう。CLRの実行時に環境に合わせて最適化するってのが、ようやく実現される例になるんでしょうか。それとも私が知らないだけで、実行時環境最適化って既に行われているのかな?
C#でも副作用(Side effect)って言葉が重要になってくるんですね。Wikipediaでは英語版より日本語のほうが詳しいという珍しい状態だったり。でも、私には作用と副作用の境界線がわからないんですが…。