Everything about Task parallelism
Form of parallelization of computer code
Task parallelism is a form of parallelization of computer code across multiple processors in parallel computing environments. Task parallelism focuses on distributing tasks—concurrently performed by processes or 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. A common type of task parallelism is 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. Wikipedia →
🧭 Start here: a 6-step reading path
- Read the overview: Task parallelismA 5-minute orientation
- Skim a recent paper: Usage of task and data parallelism for finding the lower boundary vectors in a stochastic-flow networkInfluential work since 2022
- Pick up a classic book: Parallel Programming in C with MPI and OpenMPThe most-reprinted book on the subject
- Read the landmark paper: A framework for exploiting task and data parallelism on distributed memory multicomputersCited 79 times
- Go sideways: Data parallelismA closely related topic
- Go sideways: Superscalar processorA closely related topic
📖 Definitions
No dictionary entry for this exact phrase.
🗂️ The subject at a glance
🏆 Landmark papers (most cited)
A framework for exploiting task and data parallelism on distributed memory multicomputers
Approaches for integrating task and data parallelism
Exploiting coarse-grained task, data, and pipeline parallelism in stream programs
Task Parallelism in a High Performance Fortran Framework
Data and task parallelism in ILP using MapReduce
Optimal Use of Mixed Task and Data Parallelism for Pipelined Computations
Exploiting coarse-grained task, data, and pipeline parallelism in stream programs
Exploiting coarse-grained task, data, and pipeline parallelism in stream programs
🆕 Influential since 2022
Usage of task and data parallelism for finding the lower boundary vectors in a stochastic-flow network
A scalable elliptic solver with task-based parallelism for the SpECTRE numerical relativity code
Parallel fractal image compression using quadtree partition with task and dynamic parallelism
Task parallelism-based architectures on FPGA to optimize the energy efficiency of AI at the edge
Profiling and optimization of Python-based social sciences applications on HPC systems by means of task and data parallelism
📚 Books worth reading
Parallel Programming in C with MPI and OpenMPMichael J. Quinn · 2003
Task Scheduling for Parallel SystemsOliver Sinnen · 2006
Using Openmp - The Next StepRuud Van Der Pas, Eric Stotzer · 2017
Task Scheduling for Multi-core and Parallel ArchitecturesQuan Chen, Minyi Guo · 2017
Network and Parallel ComputingJames J. Park · 2012- 📕Task-parallel extension of a data-parallel languageDamien D. Macielinski · 1994
- 📕Hands-On Parallel Programming with C# 8 and . NET Core 3Shakti Tanwar · 2019
- 📕Runtime support for data parallel tasksMatthew Haines · 1994
Ranked by number of editions on Open Library, a rough measure of how lasting a book is.
🔗 Related topics
- Data parallelism Data parallelism is parallelization across multiple processors in parallel computing environments. It focuses on distributing the data across different…
- Superscalar processor A superscalar processor (or multiple-issue processor) is a CPU that implements a form of parallelism called instruction-level parallelism within a single…
- Process (computing) In computing, a process is the instance of a computer program that is being executed by one or many threads. There are many different process models, some…
- Thread (computing) In computer science, a thread of execution is the smallest sequence of programmed instructions that can be managed independently by a scheduler, which…
- Parallel computing Parallel computing is a type of computation in which many calculations or processes are carried out simultaneously. Large problems can often be divided…
- Multithreading (computer architecture) In computer architecture, multithreading is the ability of a central processing unit (CPU) (or a single core in a multi-core processor) to provide multiple…
- Concurrent computing Concurrent computing is a form of computing in which several computations are executed concurrently—during overlapping time periods, instead of sequentially—wit…
- Computer multitasking In computing, multitasking is the concurrent execution of multiple tasks (also known as processes) over a certain period of time. New tasks can interrupt…