Dynamic execution prediction and pipeline balancing of streaming applications

dc.contributor.advisor Pande, Santosh
dc.contributor.author Aleen, Farhana Afroz en_US
dc.contributor.committeeMember Kim, Hyesoon
dc.contributor.committeeMember Yalamanchili, Sudhakar
dc.contributor.department Computing en_US
dc.date.accessioned 2011-03-04T20:21:46Z
dc.date.available 2011-03-04T20:21:46Z
dc.date.issued 2010-08-30 en_US
dc.description.abstract The number and scope of data driven streaming applications is growing. Such streaming applications are promising targets for effectively utilizing multi-cores because of their inherent amenability to pipelined parallelism. While existing methods of orchestrating streaming programs on multi-cores have mostly been static, real-world applications show ample variations in execution time that may cause the achieved speedup and throughput to be sub-optimal. One of the principle challenges for moving towards dynamic pipeline balancing has been the lack of approaches that can predict upcoming dynamic variations in execution efficiently, well before they occur. In this thesis, we propose an automated dynamic execution behavior prediction approach based on compiler analysis that can be used to efficiently estimate the time to be spent in different pipeline stages for upcoming inputs. Our approach first uses dynamic taint analysis to automatically generate an input-based execution characterization of the streaming program, which identifies the key control points where variation in execution might occur with respect to the associated input elements. We then automatically generate a light-weight emulator from the program using this characterization that can predict the execution paths taken for new streaming inputs and provide execution time estimates and possible dynamic variations. The main challenge in devising such an approach is the essential trade-off between accuracy and overhead of dynamic analysis. We present experimental evidence that our technique can accurately and efficiently estimate dynamic execution behaviors for several benchmarks with a small error rate. We also showed that the error rate could be lowered with the trade-off of execution overhead by implementing a selective symbolic expression generation for each of the complex conditions of control-flow operations. Our experiments show that dynamic pipeline balancing using our predicted execution behavior can achieve considerably higher speedup and throughput along with more effective utilization of multi-cores than static balancing approaches. en_US
dc.description.degree M.S. en_US
dc.identifier.uri http://hdl.handle.net/1853/37192
dc.publisher Georgia Institute of Technology en_US
dc.subject Dynamic scheduling en_US
dc.subject Software pipelining en_US
dc.subject.lcsh Streaming technology (Telecommunications)
dc.subject.lcsh Multimedia systems
dc.subject.lcsh Computers, Pipeline
dc.subject.lcsh Pipelining (Electronics)
dc.title Dynamic execution prediction and pipeline balancing of streaming applications en_US
dc.type Text
dc.type.genre Thesis
dspace.entity.type Publication
local.contributor.advisor Pande, Santosh
local.contributor.corporatename College of Computing
relation.isAdvisorOfPublication 6239fe5b-32c4-4067-9614-1ccca3374873
relation.isOrgUnitOfPublication c8892b3c-8db6-4b7b-a33a-1b67f7db2021
Original bundle
Now showing 1 - 1 of 1
Thumbnail Image
1.3 MB
Adobe Portable Document Format