
On Saturday 26 December 2009 18:00:49 Tommy M. McGuire wrote:
Antoine Latter wrote:
Here's a paste-bin link for the code in question:
I am not familiar with Control.Parallel at all, so someone please correct me if I'm wrong....
...but that parallel mergesort looks very wrong to me.
In the first place, the split is using the length of the list, which is going to force the spine of the list, leaving a bazillion thunks unless the runtime will evaluate the numerical value at each element.
More importantly, it seems to be running the forcelist in parallel with the merge; forcelist is not going to do anything useful after the first pass over each element, and the merge has a data dependency on the split sub-lists, which is going to limit parallelism quite a bit.
Am I wrong here?
The parallelism is obviously not obtaining any real speedup so something is wrong. But can anyone fix it? -- Dr Jon Harrop, Flying Frog Consultancy Ltd. http://www.ffconsultancy.com/?e