Content deleted Content added
m Task 18 (cosmetic): eval 3 templates: hyphenate params (2×); |
Guy Harris (talk | contribs) 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
==Description==
Line 52 ⟶ 53:
==Language support==
Task parallelism can be supported in general-
* 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]].
|