:Haskell parMap performansı? Ben çok basit bir örnekle haritası vs tezgah parMap çalışıyordu
import Control.Parallel.Strategies
import Criterion.Main
sq x = x^2
a = whnf sum $ map sq [1..1000000]
b = whnf sum $ parMap rseq sq [1..1000000]
main = defaultMain [
bench "1" a,
bench "2" b
]
Benim sonuçları parMap dan sıfır hıza gösterir gibi görünmektedir ve bu olabilir neden merak ediyorum?
benchmarking 1
Warning: Couldn't open /dev/urandom
Warning: using system clock for seed instead (quality will be lower)
time 177.7 ms (165.5 ms .. 186.1 ms)
0.997 R² (0.992 R² .. 1.000 R²)
mean 185.1 ms (179.9 ms .. 194.1 ms)
std dev 8.265 ms (602.3 us .. 10.57 ms)
variance introduced by outliers: 14% (moderately inflated)
benchmarking 2
time 182.7 ms (165.4 ms .. 199.5 ms)
0.993 R² (0.976 R² .. 1.000 R²)
mean 189.4 ms (181.1 ms .. 195.3 ms)
std dev 8.242 ms (5.896 ms .. 10.16 ms)
variance introduced by outliers: 14% (moderately inflated)
Kare neredeyse hiçbir işe yaramıyor. Paralel olarak yapmaya çalışmaktan gerçekten hiçbir şey elde edemezsiniz. – Cubic
@Cubic Listenin parçalarını farklı konulara ayırması gerektiği izlenimi altındaydım, bu yüzden her iplik için etkin bir şekilde daha az operasyon olacaktı. – allidoiswin