As a PhD Student with MPG (Media Performance Group) at Simula Research Laboratory / University of Oslo I am currently involved in a project where we aim to efficiently and accurately map workloads onto heterogeneous architectures for efficient utilization of the available resources.
The workloads we are interested in, such as live video streaming (which includes the encoding process), often consist of multiple stages, with complex interactions between the individual components, and last, but not least, a requirement for low latency, i.e., soft deadlines. For the mapping process, I primarily work with implementing and refining graph partitioning algorithms. Part of this process involves evaluating different ways of expressing the workload; by looking at hyper, bipartite, k-partite and other graph models. Determining these models usability in mapping graphs to topologies consisting of heterogeneous processors and capabilities. There are clear requirements for expressibility of complex cost-functions involving multiple parameters, such as communication (number of messages, message size), deadlines (hard, soft), instruction sets (GPU, Cell, x86 versions of components) and more.
As part of this work I have implemented a simulator (Magni) for the purpose of evaluating these mapping algorithms. Magni is capable of statically scheduling a workload to a topology, given a predetermined schedule as input. The purpose of this functionality is to permutate all possible schedules (these permutations are generated by Hanir, a supporting script) of a workload to a topology, to find an optimal schedule, and then compare this baseline to the efficiency of the various dynamic scheduling algorithms.
Previously I have worked with reducing latency in Massively Multi-player Online Games (MMOGs), with the implementation of a middleware that supports the migration of objects, using a distributed name service and core-selection to achieve this efficiently.
