@misc {Simula.simula.668,
	title = {Distributed Real-Time Processing of Multimedia Data With the P2G Framework},
	year = {2011},
	month = {April},
	abstract = {P2G is a framework designed to integrate concepts from modern batch processing frameworks into the world of real-time multimedia processing, where we seek to scale transparently with the available resources. P2G consists of a compiler and run-time that analyzes dependencies dynamically and merges or splits kernel instances based on resouce availability and performance monitoring.},
	author = {Beskow, Paul and Espeland, H{\r a}vard and H{\r a}kon Kvale {Stensland} and Preben N. {Olsen} and St{\r a}le B. {Kristoffersen} and Espen Angell {Kristiansen} and Griwodz, Carsten and Halvorsen, P{\r a}l}
}
@inproceedings {Simula.simula.686,
	title = {P2G: a Framework for Distributed Real-Time Processing of Multimedia Data},
	journal = {Proceedings of the International Workshop on Scheduling and Resource Management for Parallel and Distributed Systems (SRMPDS) - The 2011 International Conference on Parallel Processing Workshops},
	year = {2011},
	month = {September},
	pages = {416-426},
	publisher = {IEEE},
	type = {Workshop},
	abstract = {The computational demands of multimedia data processing 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, Google and Microsoft implemented their respective processing frameworks MapReduce, as they allow the developer to think sequentially, yet benefit from parallel and distributed execution. An inherent limitation in the design of these processing frameworks is their inability to express arbitrarily complex workloads. The dependency graphs of the frameworks are often limited to directed acyclic graphs, or even pre-determined stages. This is particularly problematic for video encoding and other algorithms that depend on iterative execution. With the Nornir runtime system for parallel programs, which is a Kahn Process Network implementation, we addressed and solved several of these limitations. However, it is more difficult to use than other frameworks due to its complex programming model. In this paper, we build on the knowledge gained from Nornir and present a new framework, called , designed specifically for developing and processing distributed real-time multimedia data. P2G supports arbitrarily complex dependency graphs with cycles, branches and deadlines, and provides both data- and task-parallelism. The framework is implemented to scale transparently with available (heterogeneous) resources, a concept familiar from the cloud computing paradigm. We have implemented an (interchangeable) P2G to ease development. In this paper, we present a proof of concept implementation of a P2G execution node and some experimental examples using complex workloads like Motion JPEG and K-means clustering. The results show that the P2G system is a feasible approach to multimedia processing.},
	isbn = {978-0-7695-4511-0},
	author = {Espeland, H{\r a}vard and Beskow, Paul and H{\r a}kon Kvale {Stensland} and Preben N. {Olsen} and St{\r a}le B. {Kristoffersen} and Griwodz, Carsten and Halvorsen, P{\r a}l},
	editor = {Sheu, Jang-Ping and Wang, Cho-Li}
}
@inproceedings {Simula.simula.748,
	title = {Processing of Multimedia Data Using the P2G Framework},
	journal = {Proceedings of the 19th ACM international conference on Multimedia},
	year = {2011},
	pages = {819-820},
	publisher = {ACM},
	type = {Conference},
	abstract = {In this demo, we present the P2G framework designed for processing distributed real-time multimedia data. P2G supports arbitrarily complex dependency graphs with cycles, branches and deadlines. P2G is implemented to scale transparently with available resources, i.e., a concept familiar from the cloud computing paradigm. Additionally, P2G supports heterogeneous computing resources, such as x86 and GPU processing cores. We have implemented an interchangeable P2G kernel language which is meant to expose fundamental concepts of the P2G programming model and ease the application development. Here, we demonstrate the P2G execution node using a MJPEG encoder as an example workload when dynamically adding and removing processing cores.},
	isbn = {978-1-4503-0616-4},
	author = {Beskow, Paul and H{\r a}kon Kvale {Stensland} and Espeland, H{\r a}vard and Espen Angell {Kristiansen} and Preben N. {Olsen} and St{\r a}le B. {Kristoffersen} and Griwodz, Carsten and Halvorsen, P{\r a}l},
	editor = {Sundaram, Hari and Feng, Wu-chi and Sebe, Nicu}
}
