0
import Data.Array.Repa
import Data.Vector.Unboxed hiding(zipWith)
import Prelude hiding(zipWith,replicate)

dotp :: Array U DIM1 Float -> Array U DIM1 Float -> IO Float
dotp x y =  sumAllP $ zipWith (*) x y

x = fromUnboxed (Z:.20000000) $ replicate 20000000 1 
y = fromUnboxed (Z:.20000000) $ replicate 20000000 1

main = (dotp x y) >>= print

でコンパイルghc -O2 -threaded test.hs

ただし、実行可能ファイルを実行すると./test +RTS -N1

結果は1.6777216e7

コアを増やしながら./test +RTS -N2

結果は正しいです:2.0e7

コードの何が問題になっていますか?

4

1 に答える 1