Re: [Algorithms] General purpose task parallel threading approach
Brought to you by:
vexxed72
|
From: Matteo F. <ma...@ci...> - 2009-04-14 10:11:48
|
Jon Watte <jw...@gm...> writes: > 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. It may be true that allowing arbitrary synchronous waits between tasks does not scale. However, you can allow arbitrary fork-join Cilk-style waits in a way that does indeed scale. (I have used Cilk on up to 256 processors in shared-memory configuration, and up to 1824 processors in a distributed-memory configuration without any particular problems.) For this to work, however, you must implement the stack as a ``cactus stack'' rather than as a collection of standard linear (contiguous) stacks. This is hard to do in a library---you really need compiler support. Regards, Matteo Frigo |