
Bulat Ziganshin wrote:
Hello Andrew,
Wednesday, September 16, 2009, 11:31:22 PM, you wrote:
If you're going to use par, it doesn't really matter how many sparks you create. You just need to avoid creating millions of really tiny sparks. You could create, say, eight and let GHC figure out the rest itself...
since these are green threads, 1 millisecond sparks should be acceptable and may be even 1 microsecod too.
Of course, how many split seconds it takes depends on the speed of the processor running it. ;-) But you probably don't want to spark, say, one addition operation. (Unless perhaps you're adding *really huge* arbitrary-precision integers or something.) Actually, it might be interesting to benchmark where the balance tips; exactly how much work you need to do for the spark overhead to be worth it. It's likely to vary by GHC version though...
afair, overhead expenses was significantly reduced in ghc 6.12, soon to be released
I've heard similar things. I think I even read a paper about it. (Those GHC guys... always putting out such interesting papers! If it weren't for them, I might actually get some work done...) If you wanted to benchmark anything, it would seem prudent to wait for this. ;-)