関数型プログラミング言語Haskell Part11
■ このスレッドは過去ログ倉庫に格納されています
0474デフォルトの名無しさん
2010/01/24(日) 20:00:35いや、>>464 が紹介してくれた英語は問題なく読めた。
言葉が少なくて誤解を与えたが、parSort2 関数を使って実験したというのは、
あの記事に載っている SortMain.hs ももちろん使っての話。
あの記事に載っている sort 関数と parSort2 2 関数で試してみた。
どちらも "ghc -threaded -O2 --make SortMain" でコンパイルし、
意味は無さそうだが sort の方でも -N1 と -N2 で実験してみた。
リストの要素数は 200000 だ(700000 では -N2 で固まる)。
下記は4パターンそれぞれを5回試した時の処理時間の平均値だ。
(小数点第2位で四捨五入した)
ちなみに、タスクマネージャで目測した2つのCPUの使用率において、
片方を1とした場合の2つの割合を CPU 1:y と記した。
sort -N1 [1.0s] [CPU 1:0.5] / -N2 [20.6s] [CPU 1:0.8]
parSort2 2 -N1 [1.0s] [CPU 1:0.3] / -N2 [20.8s] [CPU 1:0.7]
-N2 の方は何故かどちらも4秒程度で完了したり、
10秒程度で完了したりした時もあり、あまり安定しない。
そういうものは平均値の測定から省いた。
本当は20回くらい実験しているが、その中の比較的安定している5回の平均だ。
まったくもって、さっぱりだ。
原因が何処にありそうなのかも見当がつかない。
> 少なくとも、こちらで試した感じでは、"parSort2 2"で要素数700000のリストのソートが -N1 と -N2 で同程度の時間だった。
同程度ではまずいのではないか?
■ このスレッドは過去ログ倉庫に格納されています