Re: [Algorithms] General purpose task parallel threading approach
Brought to you by:
vexxed72
|
From: Jarkko L. <al...@gm...> - 2009-04-09 22:51:51
|
> It's actually not vital for throughput, and I couldn't see anything in the presentation you linked saying it is. That's what "Minimizing the Critical Path" is about. Ignoring the issue doesn't mean it doesn't exist. Cheers, Jarkko _____ From: Sebastian Sylvan [mailto:seb...@gm...] Sent: Friday, April 10, 2009 1:13 AM To: Game Development Algorithms Subject: Re: [Algorithms] General purpose task parallel threading approach On Thu, Apr 9, 2009 at 10:27 PM, Jarkko Lempiainen <al...@gm...> wrote: Yes, appealing to the "big boys" is pretty weak argument since they have provided sub-optimal solutions before as well. In this case almost all of them have, at one point or another, tried the alternative and decided it was worth the effort to implement the much trickier solution. In fact the the presentation you linked was given by the very same organization (xna) who now recommend work stealing - so clearly they've given the global work queue an honest shot don't you think? Anyway, I was hoping to get some strong arguments either way, but I guess it's not very clear yet what solution is the best for multi-threading your engine. I read through the Gamefest slides and it was a bit surprising they didn't deal with prioritization at all, which is vital for throughput. It's actually not vital for throughput, and I couldn't see anything in the presentation you linked saying it is. Tasks are naturally ordered according to their dependencies due to the way they are spawned (you spawn tasks, then you sync - only then do you spawn any dependent tasks). With the cilk based model any task that is enqueued is by definition ready to run. There's in no need for priorities to optimize throughput. -- Sebastian Sylvan +44(0)7857-300802 UIN: 44640862 |