Enhancing the performance of Decoupled Software Pipeline through Backward Slicing
Esraa Alwan, John Fitch, Julian Padget

TL;DR
This paper demonstrates that combining Decoupled Software Pipeline (DSWP) with backward slicing significantly enhances parallel execution performance in multicore programs, especially when loop-carried dependencies hinder simpler optimizations.
Contribution
The paper introduces a novel combination of DSWP and backward slicing, showing substantial performance improvements over DSWP alone in multicore program optimization.
Findings
Performance improved by approximately 1.6 times with DSWP + slicing over DSWP alone.
Overall speedup of about 2.4 times compared to original sequential code.
Effective in scenarios with loop-carried dependencies preventing DOALL optimization.
Abstract
The rapidly increasing number of cores available in multicore processors does not necessarily lead directly to a commensurate increase in performance: programs written in conventional languages, such as C, need careful restructuring, preferably automatically, before the benefits can be observed in improved run-times. Even then, much depends upon the intrinsic capacity of the original program for concurrent execution. The subject of this paper is the performance gains from the combined effect of the complementary techniques of the Decoupled Software Pipeline (DSWP) and (backward) slicing. DSWP extracts threadlevel parallelism from the body of a loop by breaking it into stages which are then executed pipeline style: in effect cutting across the control chain. Slicing, on the other hand, cuts the program along the control chain, teasing out finer threads that depend on different variables…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
Taxonomy
TopicsSoftware Testing and Debugging Techniques · Parallel Computing and Optimization Techniques · Software Reliability and Analysis Research
