Everything about Loop-level parallelism
Loop-level parallelism is a form of parallelism in software programming that is concerned with extracting parallel tasks from loops. The opportunity for loop-level parallelism often arises in computing programs where data is stored in random access data structures. Where a sequential program will iterate over the data structure and operate on indices one at a time, a program exploiting loop-level parallelism will use multiple threads or processes which operate on some or all of the indices at the same time. Such parallelism provides a speedup to overall execution time of the program, typically in line with Amdahl's law. Wikipedia →
🧭 Start here: a 6-step reading path
- Read the overview: Loop-level parallelismA 5-minute orientation
- Skim a recent paper: A New Combination Method for Improving Parallelism in Two and Three Level Perfect Nested LoopsInfluential work since 2022
- Pick up a classic book: Computer Engineering and TechnologyThe most-reprinted book on the subject
- Read the landmark paper: Exploiting loop-level parallelism on coarse-grained reconfigurable architectures using modulo schedulingCited 61 times
- Go sideways: DOACROSS parallelismA closely related topic
- Go sideways: DOPIPEA closely related topic
📖 Definitions
No dictionary entry for this exact phrase.
🗂️ The subject at a glance
🏆 Landmark papers (most cited)
Exploiting loop-level parallelism on coarse-grained reconfigurable architectures using modulo scheduling
Loop-level parallelism in numeric and symbolic programs
Optimally Maximizing Iteration-Level Loop Parallelism
On the exploitation of loop-level parallelism in embedded applications
Strategies for the efficient exploitation of loop‐level parallelism in Java
A Static Greedy and Dynamic Adaptive Thread Spawning Approach for Loop-Level Parallelism
A practical run-time technique for exploiting loop-level parallelism
Strategies for the efficient exploitation of loop‐level parallelism in Java
🆕 Influential since 2022
📚 Books worth reading
Computer Engineering and TechnologyWeixia Xu · 2013
Introduction to Computing Using PythonLjubomir Perkovic · 2011
The Conspirators HierarchyJohn Coleman · 1992
SystemVerilog for VerificationChris Spear · 2006
High-level synthesisPhilippe Coussy, Adam Morawiec · 2008- 📕Magnetics, dielectrics, and wave propagation with MATLAB codesC. Vittoria · 2011
Coding the MatrixPhilip N. Klein · 2013
Efficient loop-level parallelism in AdaMichael Hind · 1991
Ranked by number of editions on Open Library, a rough measure of how lasting a book is.
🔗 Related topics
- DOACROSS parallelism DOACROSS parallelism is a parallelization technique used to perform Loop-level parallelism by utilizing synchronisation primitives between statements in…
- DOPIPE DOPIPE parallelism is a method to perform loop-level parallelism by pipelining the statements in a loop. Pipelined parallelism may exist at different levels…
- Automatic parallelization Automatic parallelization, also auto-parallelization or autoparallelization, is a compiler optimization in which a compiler or other software tool transforms…
- Loop dependence analysis In computer science, loop dependence analysis is a process which can be used to find dependencies within iterations of a loop with the goal of determining…
- GCD test In compiler theory, a greatest common divisor test (GCD test) is the test used in study of loop optimization and loop dependence analysis to test the dependency…
- Data parallelism Data parallelism is parallelization across multiple processors in parallel computing environments. It focuses on distributing the data across different…
- OpenMP OpenMP is an application programming interface (API) that supports multi-platform shared-memory multiprocessing programming in C, C++, and Fortran, on…
- Scalable parallelism Software exhibits scalable parallelism if it can make use of added processors to solve larger problems, i.e., this term refers to software for which Gustafson's…