Parallel programming models and run-time system support for interactive multimedia applications
Supervisor(s) and Committee member(s): Pål Halvorsen (supervisor), Carsten Griwodz (supervisor), Sheng-Wei (Kuan-Ta) Chen (opponent), Mei Wen (opponent)
The computational demands of interactive multimedia applications are steadily increasing as consumers call for progressively more complex and intelligent multimedia services. New multi-core hardware architectures provide the required resources, but writing parallel, distributed applications remains a labor-intensive task compared to their sequential counter-part. For this reason a number of parallel programming models, tools and techniques exist to alleviate the cognitive load placed on the developer, where a number of these solutions allow a developer to think sequentially, yet benefit from parallel and distributed execution.
An inherit limitation in a number of these existing solutions is their inability to express arbitrarily complex workloads. The dependency graphs of these approaches, which express the relationship between computation and communication as vertices and edges, are often limited to directed acyclic graphs or even pre-determined stages. Furthermore, these existing solutions are frequently only capable of expressing a subset of the available parallelization domains. This effectively limits these solutions applicability to video encoding and other multimedia algorithms that depend on iterative execution and are capable of expressing a number of forms of parallelism.
Through the development of Ginnungagap and evaluation of Nornir, and related work, we have extracted concepts for the formulation of a new high-level programming model and subsequent run-time system, called P2G, which is capable of supporting the emerging domain of interactive multi-media applications. With P2G we improve on existing tools and techniques with the support of arbitrarily complex dependency graphs with cycles, branches and deadlines, and provide support for data, task, pipeline and nested parallelism. This is achieved in P2G through the definition a high-level programming model, implemented through a novel kernel language that is designed to minimize the development effort otherwise placed on the developer by automating key components for parallelization and distribution, such as partitioning, scheduling, agglomeration and synchronization. To demonstrate the feasibility of our solution, we have implemented a proof-of-concept run-time system that demonstrates the applicability and scalability of the designed solution.
Media Performance Group
The Media Performance Group (MPG) addresses resource utilization and performance challenges to support a wide range of interactive multimedia services to the large user masses in the Internet. The goals are to reduce the costs, increase the number of users and optimize the perceived service quality. MPG's activities branch into several areas of multimedia systems to maintain and improve our ability to evaluate the performance of complete multimedia systems. This goal ties research branches together that are as diverse as multicore programming and user perception. Any level of a system may constitute a performance bottleneck, and the critical bottlenecks are known to move from component to component as the state of the art develops. Therefore, MPG's research keeps a global scope, while its research activities target the critical performance question.