<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://www.slicer.org/w/index.php?action=history&amp;feed=atom&amp;title=Slicer3%3AThreadingToolKit</id>
	<title>Slicer3:ThreadingToolKit - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://www.slicer.org/w/index.php?action=history&amp;feed=atom&amp;title=Slicer3%3AThreadingToolKit"/>
	<link rel="alternate" type="text/html" href="https://www.slicer.org/w/index.php?title=Slicer3:ThreadingToolKit&amp;action=history"/>
	<updated>2026-05-06T18:43:57Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.33.0</generator>
	<entry>
		<id>https://www.slicer.org/w/index.php?title=Slicer3:ThreadingToolKit&amp;diff=3485&amp;oldid=prev</id>
		<title>Marianna: 2 revisions</title>
		<link rel="alternate" type="text/html" href="https://www.slicer.org/w/index.php?title=Slicer3:ThreadingToolKit&amp;diff=3485&amp;oldid=prev"/>
		<updated>2008-05-15T17:53:22Z</updated>

		<summary type="html">&lt;p&gt;2 revisions&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #222; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #222; text-align: center;&quot;&gt;Revision as of 17:53, 15 May 2008&lt;/td&gt;
				&lt;/tr&gt;
&lt;!-- diff cache key mediawiki_slicer:diff::1.12:old-3484:rev-3485 --&gt;
&lt;/table&gt;</summary>
		<author><name>Marianna</name></author>
		
	</entry>
	<entry>
		<id>https://www.slicer.org/w/index.php?title=Slicer3:ThreadingToolKit&amp;diff=3484&amp;oldid=prev</id>
		<title>Aylward at 15:32, 3 August 2007</title>
		<link rel="alternate" type="text/html" href="https://www.slicer.org/w/index.php?title=Slicer3:ThreadingToolKit&amp;diff=3484&amp;oldid=prev"/>
		<updated>2007-08-03T15:32:20Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #222; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #222; text-align: center;&quot;&gt;Revision as of 15:32, 3 August 2007&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l22&quot; &gt;Line 22:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 22:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;==== Parallel Loops ====&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;==== Parallel Loops ====&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;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.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;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.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;== Related Links ==&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;* http://www.dmoz.org/Computers/Programming/Threads/&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;

&lt;!-- diff cache key mediawiki_slicer:diff::1.12:old-3483:rev-3484 --&gt;
&lt;/table&gt;</summary>
		<author><name>Aylward</name></author>
		
	</entry>
	<entry>
		<id>https://www.slicer.org/w/index.php?title=Slicer3:ThreadingToolKit&amp;diff=3483&amp;oldid=prev</id>
		<title>Blezek at 12:48, 3 August 2007</title>
		<link rel="alternate" type="text/html" href="https://www.slicer.org/w/index.php?title=Slicer3:ThreadingToolKit&amp;diff=3483&amp;oldid=prev"/>
		<updated>2007-08-03T12:48:33Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;=== Purpose ===&lt;br /&gt;
&lt;br /&gt;
Just as the [[Slicer3:Execution_Model| 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.&lt;br /&gt;
&lt;br /&gt;
=== Goals ===&lt;br /&gt;
&lt;br /&gt;
* Provide building blocks inspired by [http://www.openmp.org OpenMP], [http://java.sun.com/docs/books/tutorial/essential/concurrency/index.html Java's concurrency model], and [http://osstbb.intel.com/ Intel's Threading Building Blocks].&lt;br /&gt;
* Provide a cross platform C++ implementation for&lt;br /&gt;
** POSIX pthreads&lt;br /&gt;
** Windows threading&lt;br /&gt;
** Single threaded implementation&lt;br /&gt;
* Attempt a header only implementation, to minimize developer overhead&lt;br /&gt;
&lt;br /&gt;
=== Design thoughts ===&lt;br /&gt;
&lt;br /&gt;
==== Thread Pool ====&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
==== Tasks ====&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
==== Parallel Loops ====&lt;br /&gt;
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.&lt;/div&gt;</summary>
		<author><name>Blezek</name></author>
		
	</entry>
</feed>