Difference between revisions of "Slicer3:ThreadingToolKit"

From Slicer Wiki
Jump to: navigation, search
 
m (2 revisions)
 
(One intermediate revision by one other user not shown)
Line 22: Line 22:
 
==== Parallel Loops ====
 
==== Parallel Loops ====
 
Inspired by TBB, a parallel loop would automatically break a large number of iterations across threads in a ''scatter-gather'' pattern.  An object used for looping would only need to have a particular method, or may need to be a particular subclass.
 
Inspired by TBB, a parallel loop would automatically break a large number of iterations across threads in a ''scatter-gather'' pattern.  An object used for looping would only need to have a particular method, or may need to be a particular subclass.
 +
 +
== Related Links ==
 +
* http://www.dmoz.org/Computers/Programming/Threads/

Latest revision as of 17:53, 15 May 2008

Home < Slicer3:ThreadingToolKit

Purpose

Just as the Execution Model has enabled algorithm developers to rapidly integrate their software into Slicer3, the purpose of the Threading ToolKit (TTK) is to enable algorithm and application developers to easily take advantage of multi core threaded environments.

Goals

Design thoughts

Thread Pool

Provide a thread pool class. The thread pool would dynamically allocate threads to an instantiation specified limit, allow threads to be requested in blocking and non-blocking fashion and maintain thread state.

Tasks

Tasks are concurrent work units. Each Task may be executed concurrently and may be grouped. A process may wait for all tasks to be completed, or request asynchronous notification.

Parallel Loops

Inspired by TBB, a parallel loop would automatically break a large number of iterations across threads in a scatter-gather pattern. An object used for looping would only need to have a particular method, or may need to be a particular subclass.

Related Links