Task parallelism: Difference between revisions

Content deleted Content added
Monkbot (talk | contribs)
m Task 18 (cosmetic): eval 3 templates: hyphenate params (2×);
Simplify link.
 
(5 intermediate revisions by 5 users not shown)
Line 1:
{{More footnotes|date=May 2011}}
{{short description|Form of parallelization of computer code}}
'''Task parallelism''' (also known as '''function parallelism''' and '''control parallelism''') is a form of [[parallelization]] of [[Source code|computer code]] across multiple [[Central processing unit|processor]]s in [[parallel computing]] environments. Task parallelism focuses on distributing [[Task (computing)|tasks]]—concurrently performed by [[Process (computing)|processes]] or [[Thread (computing)|threads]]—across different processors. In contrast to [[data parallelism]] which involves running the same task on different components of data, task parallelism is distinguished by running many different tasks at the same time on the same data.<ref>{{cite news|last1=Reinders|first1=James|title=Understanding task and data parallelism {{!}} ZDNet|url=httphttps://www.zdnet.com/article/understanding-task-and-data-parallelism-3039289129/|access-date=8 May 2017|work=ZDNet|date=10 September 2007|language=en}}</ref> A common type of task parallelism is [[Pipeline (computing)|pipelining]], which consists of moving a single set of data through a series of separate tasks where each task can execute independently of the others.
 
==Description==
Line 52 ⟶ 53:
 
==Language support==
Task parallelism can be supported in general-purposespurpose languages by either built-in facilities or libraries. Notable examples include:
* Ada: Tasks (built-in)
* C++ (Intel): [[Threading Building Blocks]]
* C++ (Intel): [[Cilk Plus]]
* C++ (Open Source/Apache 2.0): [[RaftLib]]
* C, C++, Objective-C, Swift (Apple): [[Grand Central Dispatch]]
* D: [[Task (computing)|tasks]] and [[Fiber (computer science)|fibers]]
* Delphi (System.Threading.TParallel)
* Go: [[goroutine]]s
* Java: [[Java concurrency]]
* .NET: [[Task Parallel Library]]
* Delphi (System.Threading.TParallel)
Examples of fine-grained task-parallel languages can be found in the realm of [[Hardware Description Language]]s like [[Verilog]] and [[VHDL]].