
Don Stewart wrote:
marlowsd:
Neal Alexander wrote:
Thomas DuBuisson wrote:
It seems like we could get some priority based scheduling (and still be slackers) if we allow marked green threads to be strictly associated with a specific OS thread (forkChildIO?).
I think you want the GHC-only GHC.Conc.forkOnIO
GHC.Conc.forkOnIO is helpful but doest work in this case - it doesn't attach them to the same OS thread. But it does attach the thread to a particular "virtual CPU" in the GHC RTS (we call them "capabilities"), with the intention that a virtual CPU corresponds more or less to a real CPU core.
Every time Simon responds on questions of parallelism and the GHC runtime, I learn something. That indicates to me that we've got a 'bus error' situation with how to effectively use the smp runtime.
Simon: time for a multicore FAQ wiki page to gather this knowledge, like we did for the performance tips? Somewhere to paste these insights?
Sure, that would be great. One slight problem is that I'm still learning myself how to use parallelism effectively, and the RTS is still changing rapidly. We have a paper in the works that should serve as a good overview of the implementation, but a wiki page would be more suitable for users. If nobody else starts one, I'll try to get to it in the next few weeks. Cheers, Simon