Font Size: a A A

Block parallel programming for real-time applications on multi-core processors

Posted on:2009-12-18Degree:Ph.DType:Thesis
University:Stanford UniversityCandidate:Black-Schaffer, DavidFull Text:PDF
GTID:2448390002994432Subject:Engineering
Abstract/Summary:
This thesis presents a streaming block-parallel programming language for describing applications with hard real-time constraints and several transformations for parallelizing and mapping such applications to many-core architectures. The language parameterizes the data movement within the application in such a manner as to enable simple application analysis and rapid software development. Key enhancements for both programmer productivity and application analyzability include the use of native two-dimensional data streams to simplify image processing algorithms, flexible control distribution for intuitive and analyzable synchronous and asynchronous control, explicit data dependency edges for specifying limited parallelism, and multiple computation methods per kernel. The benefits of this application description are shown through the intuitive analyses and manipulations required to parallelize, buffer, and map such applications to a many-core architecture while insuring that they meet their real-time computation requirements.; To evaluate this programming approach, a program analysis and manipulation framework and a cycle-accurate simulation environment were constructed. These were used to automatically analyze, parallelize, buffer, and execute a variety of test programs to ensure that they met their specified real-time constraints. The results suggest that this block-parallel programming approach is both easier to use and analyze than previous streaming programming models.
Keywords/Search Tags:Programming, Real-time, Applications
Related items