Everything about Parallel computing
Programming paradigm in which many processes are executed simultaneously
Parallel computing is a type of computation in which many calculations or processes are carried out simultaneously. Large problems can often be divided into smaller ones, which can then be solved at the same time. There are several different forms of parallel computing: bit-level, instruction-level, data, and task parallelism. Parallelism has long been employed in high-performance computing, but has gained broader interest due to the physical constraints preventing frequency scaling. As power consumption by computers has become a concern in recent years, parallel computing has become the dominant paradigm in computer architecture, mainly in the form of multi-core processors. Wikipedia →
🧭 Start here: a 6-step reading path
- Read the overview: Parallel computingA 5-minute orientation
- Skim a recent paper: High-fidelity parallel entangling gates on a neutral-atom quantum computerInfluential work since 2022
- Pick up a classic book: Parallel Processing and Applied MathematicsThe most-reprinted book on the subject
- Read the landmark paper: jModelTest 2: more models, new heuristics and parallel computingCited 15,200 times
- Go sideways: Instruction-level parallelismA closely related topic
- Go sideways: Concurrent computingA closely related topic
📖 Definitions
Noun A type of computation in which many calculations or processes are carried out simultaneously.
🏆 Landmark papers (most cited)
jModelTest 2: more models, new heuristics and parallel computing
Parallel Symbolic Computing
Cost-effective parallel computing
Study on Parallel Computing
parallel: A command for parallel computing
Data-Parallel Computing
Computing dominators in parallel
Hyper-systolic parallel computing
🆕 Influential since 2022
High-fidelity parallel entangling gates on a neutral-atom quantum computer
Massively parallel probabilistic computing with sparse Ising machines
Parallel in-memory wireless computing
Parallel optical computing capable of 100-wavelength multiplexing
Parallel wave‐based analog computing using metagratings
📚 Books worth reading
Parallel Processing and Applied MathematicsRoman Wyrzykowski · 2003
Parallel Computing TechnologiesVictor Malyshkin · 2003
Algorithms and Architectures for Parallel ProcessingSheng Wen, Albert Y. Zomaya · 2015
PerceptronsMarvin Minsky, Seymour Papert · 1969
Using MPIWilliam Gropp, Ewing Lusk · 1994
Distributed SystemsAndrew S. Tanenbaum, Maarten Van Steen · 2001- 📕Recent Advances in Parallel Virtual Machine and Message Passing InterfaceDieter Kranzlmüller, Péter Kacsuk · 2003
Pthreads programmingBradford Nichols, Dick Buttlar · 1996
Ranked by number of editions on Open Library, a rough measure of how lasting a book is.
🔗 Related topics
- Instruction-level parallelism Instruction-level parallelism (ILP) is the parallel or simultaneous execution of a sequence of instructions in a computer program. More specifically, ILP…
- Concurrent computing Concurrent computing is a form of computing in which several computations are executed concurrently—during overlapping time periods, instead of sequentially—wit…
- Task parallelism Task parallelism (also known as function parallelism and control parallelism) is a form of parallelization of computer code across multiple processors…
- Data parallelism Data parallelism is parallelization across multiple processors in parallel computing environments. It focuses on distributing the data across different…
- Symmetric multiprocessing Symmetric multiprocessing or shared-memory multiprocessing (SMP) involves a multiprocessor computer hardware and software architecture where two or more…
- Hardware acceleration Hardware acceleration is the use of computer hardware, known as a hardware accelerator, to perform specific functions faster than can be done by software…
- Parallel programming model In computing, a parallel programming model is an abstraction of parallel computer architecture, with which it is convenient to express algorithms and their…
- Data-intensive computing Data-intensive computing is a class of parallel computing applications which use a data parallel approach to process large volumes of data typically terabytes…