The 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. / Graduate
Identifer | oai:union.ndltd.org:uvic.ca/oai:dspace.library.uvic.ca:1828/11008 |
Date | 31 July 2019 |
Creators | Leben, Jakob |
Contributors | Tzanetakis, George |
Source Sets | University of Victoria |
Language | English, English |
Detected Language | English |
Type | Thesis |
Format | application/pdf |
Rights | Available to the World Wide Web |
Page generated in 0.0017 seconds