ネタ元 キングギドラvsやまたのおろち
こちらでは原因が並列化処理に限定されたわけではないですが、一般的な話として並列化を行うことによって高速化することも多いですけど、逆の場合もまた多いです。
並列化して大幅な高速化が望めるのは下記に限定されると思っています。
- 扱う対象の?resource も並列処理可能
- 扱う resource 自体に余裕がある
たとえば、CPU が並列処理可能でも一つの resource を共有する場合、結局その resourece 空き待ちが発生するわけで、大して効果がないことも多いです。Physical memory のように random access に強いものならそれなりに効果がありますが、HDD のような sequential access と random access で明らかに処理速度が違うようなものを扱うときには注意が必要だと思っています。下手に並列化することによって、遅くなる可能性が非常に高いと思っています。
小規模な場合には問題になること少ないですが、大規模な場合にはここら辺が問題になることが非常に多いです。
なお、SQL server に関しては consulting service が行っている query tuning の講義が参考になりますね。予算に余裕があったら是非受講してみてください。
Web ではこんなのがあるようですね。
あと、PASSJ?の講義でここら辺やってくれたりしないんですかね?
今度行ってみるか
並列化で最大限の効果を挙げるためには扱う resource を含めた並列化が必要になるので、そこら辺を意識する必要があるでしょう。