Re: [Algorithms] General purpose task parallel threading approach
Brought to you by:
vexxed72
|
From: Jon W. <jw...@gm...> - 2009-04-13 23:09:39
|
Sebastian Sylvan wrote: > In my opinion a task system that places restrictions (fairly severe > ones IMO) on what kinds of code you can run in tasks can not > reasonably be called a "general" system. I don't find this to be an > unreasonable definition. Note that the system I describe doesn't actually restrict you from dynamically spawning tasks; it just restricts you from generally waiting synchronously for the completion of those tasks after you spawn them. Synchronization is done based on dependencies known when the task gets scheduled. Thus, anything dynamic is restricted to happening between individual work task invocations, which I think is about as granular as you would want it. Storing stacks for each task, and allowing arbitrary synchronous waits between tasks is simply not going to scale to many-core machines IMO, so wanting to do that is like wanting to not scale. Sincerely, jw |