Live briefing
Everything about Software pipelining
Technique in computer programming to optimize loop execution
In computer science, software pipelining is a technique used to optimize loops, in a manner that parallels hardware pipelining. Software pipelining is a type of out-of-order execution, except that the reordering is done by a compiler instead of the processor. Some computer architectures have explicit support for software pipelining, notably Intel's IA-64 architecture. Wikipedia →
🧭 Start here: a 6-step reading path
- Read the overview: Software pipeliningA 5-minute orientation
- Skim a recent paper: MEGARes and AMR++, v3.0: an updated comprehensive database of antimicrobial resistance determinants and an improved software pipeline for classification using high-throughput sequencingInfluential work since 2022
- Pick up a classic book: Decision support system for design and evaluation of pipeline projectsThe most-reprinted book on the subject
- Read the landmark paper: Software pipeliningCited 253 times
- Go sideways: Loop unrollingA closely related topic
- Go sideways: Optimizing compilerA closely related topic
📖 Definitions
No dictionary entry for this exact phrase.
🗂️ The subject at a glance
🏆 Landmark papers (most cited)
Software pipelining
Software pipelining: an effective scheduling technique for VLIW machines
Resource-constrained software pipelining
Parallelizing nonnumerical code with selective scheduling and software pipelining
A framework for resource-constrained rate-optimal software pipelining
Partitioning and pipelining for performance-constrained hardware/software systems
Circuit retiming applied to decomposed software pipelining
OPTIMAL SOFTWARE PIPELINING UNDER RESOURCE CONSTRAINTS
🆕 Influential since 2022
MEGARes and AMR++, v3.0: an updated comprehensive database of antimicrobial resistance determinants and an improved software pipeline for classification using high-throughput sequencing
Ensino de Software Pipelining e Escalonamento em GPUs com Python no Google Colab
Software Pipelining for Quantum Loop Programs
Method for Software Pipelining on Graphical Processing Units
ESPS: an effective software pipelining scheme for high performance computing in vector VLIW DSP
📚 Books worth reading
- 📕Decision support system for design and evaluation of pipeline projectsS. K. Barua · 2006
- 📕Ein räumliches Entscheidungsunterstützungssystem für das Instandhaltungsmanagement in GasnetzenKathrin Kirchner · 2009
The Road To Microservice ArchitectureRaymond Pairan
Ranked by number of editions on Open Library, a rough measure of how lasting a book is.
🔗 Related topics
- Loop unrolling Loop unrolling, also known as loop unwinding, is a loop transformation technique that attempts to optimize a program's execution speed at the expense of…
- Optimizing compiler An optimizing compiler is a compiler designed to generate code that is optimized in aspects such as minimizing program execution time, memory usage, storage…
- Duff's device In the C programming language, Duff's device is a way of manually implementing loop unrolling by interleaving two syntactic constructs of C: the do-while…
- Automatic vectorization Automatic vectorization, in parallel computing, is a special case of automatic parallelization, where a computer program is converted from a scalar implementati…
- 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…
- 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…
- Zero-overhead looping In computer architecture, zero-overhead looping is a hardware feature found in some processors that enables loops to execute without the performance cost…
- Instruction scheduling In computer science, instruction scheduling is a compiler optimization used to improve instruction-level parallelism, which improves performance on machines…