isaacdupree: > ntupel wrote: > >Thanks for your reply Stefan. Unfortunately I could measure only a > >relatively small improvement by changing to concrete types > > >the sample code was about one second faster when compiled with -O2. > >Profiling again indicated that most time was spend in random and randomR > > GHC StdGen's random and randomR are somewhat slow. I found that > changing to a custom ((x*a + b) `mod` c) random-generator (instance of > RandomGen) much sped things up (since nothing depended on the random > numbers being good quality). (Then I switched to a small C function to > do the randomization and make all the OpenGL calls, and it sped up by > another factor of 4.) >
I've seen similar results switching to the SIMD mersenne twister C implementation for randoms: http://www.math.sci.hiroshima-u.ac.jp/~m-mat/MT/SFMT/index.html If there's interest, I can package up the bindings for hackage. -- Don _______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe