Live briefing
Everything about DOACROSS parallelism
DOACROSS parallelism is a parallelization technique used to perform Loop-level parallelism by utilizing synchronisation primitives between statements in a loop. This technique is used when a loop cannot be fully parallelized by DOALL parallelism due to data dependencies between loop iterations, typically loop-carried dependencies. The sections of the loop which contain loop-carried dependence are synchronized, while treating each section as a parallel task on its own. Therefore, DOACROSS parallelism can be used to complement DOALL parallelism to reduce loop execution times. Wikipedia →
đź§ Start here: a 6-step reading path
- Read the overview: DOACROSS parallelismA 5-minute orientation
- Pick up a classic book: Exploiting doacross parallelism in tightly-coupled multiprocessorsThe most-reprinted book on the subject
- Read the landmark paper: Time stamp algorithms for runtime parallelization of DOACROSS loops with dynamic dependencesCited 18 times
- Go sideways: DOPIPEA closely related topic
- Go sideways: Loop-level parallelismA closely related topic
đź“– Definitions
No dictionary entry for this exact phrase.
🗂️ The subject at a glance
🏆 Landmark papers (most cited)
📚 Books worth reading
- 📕Exploiting doacross parallelism in tightly-coupled multiprocessorsHo, Robert. · 1996
- 📕The preprocessed doacross loopJoel H. Saltz · 1990
Ranked by number of editions on Open Library, a rough measure of how lasting a book is.
đź”— Related topics
- 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…
- 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 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…
- Automatic parallelization Automatic parallelization, also auto-parallelization or autoparallelization, is a compiler optimization in which a compiler or other software tool transforms…
- Loop optimization In compiler theory, loop optimization is the process of increasing execution speed and reducing the overheads associated with loops. It plays an important…
- OpenMP OpenMP is an application programming interface (API) that supports multi-platform shared-memory multiprocessing programming in C, C++, and Fortran, on…
- Automatic vectorization Automatic vectorization, in parallel computing, is a special case of automatic parallelization, where a computer program is converted from a scalar implementati…
- Data dependency A data dependency in computer science is a situation in which a program statement (instruction) refers to the data of a preceding statement. In compiler…