A programming language based on recurrence equations and polyhedral compilation for stream processing

dc.contributor.authorLeben, Jakob
dc.contributor.supervisorTzanetakis, George
dc.date.accessioned2019-07-31T17:45:48Z
dc.date.available2019-07-31T17:45:48Z
dc.date.copyright2019en_US
dc.date.issued2019-07-31
dc.degree.departmentDepartment of Computer Scienceen_US
dc.degree.levelDoctor of Philosophy Ph.D.en_US
dc.description.abstractThe work presented in this dissertation contributes to the field of programming lan- guage design and implementation for stream processing applications. There is a fast-expanding domain of stream processing applications which demand processing high-volume streams quickly and often in real time. Examples include analysis and synthesis of audio, video and other digital media, sensor array signals, real-time phys- ical simulation etc. High performance is crucial in this domain. When choosing between available programming methods, the programmer often chooses one that maximizes performance while sacrificing ease of programming, code comprehension, maintainability and reusability. This work contributes towards improving the state of the art by jointly maximizing these aspects. High-volume streams are often most naturally represented as multi-dimensional arrays with one infinite dimension representing time. Algorithms working with such streams are typically defined mathematically using recurrence equations. A pro- gramming language is presented in this dissertation which enables an almost literal translation of such mathematical definitions to computer programs. The language also supports powerful facilities for abstraction and code reuse such as polymorphic and higher-order functions. Together, these features enable a more natural expression of algorithms and improve code modularity and reusability. A major contribution of this dissertation is the compilation of the proposed lan- guage in the polyhedral framework, specifically targeting general-purpose multi-core processors. This framework provides powerful means of analysis and transformations of computations on multi-dimensional arrays, which enables data-locality optimiza- tions essential for high performance on general-purpose processors with deep memory hierarchies. The benefit of this framework for computations on finite arrays has been extensively explored. However, this dissertation presents essential extensions that enable the application of state-of-the-art optimizations in this framework on infinite arrays representing streams.en_US
dc.description.scholarlevelGraduateen_US
dc.identifier.urihttp://hdl.handle.net/1828/11008
dc.languageEnglisheng
dc.language.isoenen_US
dc.rightsAvailable to the World Wide Weben_US
dc.subjectprogramming languageen_US
dc.subjectstream processingen_US
dc.subjectsignal processingen_US
dc.subjectrecurrence equationsen_US
dc.subjectpolyhedral modelen_US
dc.subjectfunctional languageen_US
dc.subjectcompileren_US
dc.titleA programming language based on recurrence equations and polyhedral compilation for stream processingen_US
dc.typeThesisen_US

Files

Original bundle
Now showing 1 - 1 of 1
Loading...
Thumbnail Image
Name:
Leben_Jakob_PhD_2019.pdf
Size:
720.14 KB
Format:
Adobe Portable Document Format
Description:
License bundle
Now showing 1 - 1 of 1
No Thumbnail Available
Name:
license.txt
Size:
1.71 KB
Format:
Item-specific license agreed upon to submission
Description: