Task Placement on Many Cores

Chair Project Task Placement for Many-Cores

  • Start date: 01.01.2010
  • End date: 31.12.2013
  • Funded by: Universität Augsburg
  • Local head of project: Prof. Dr. Theo Ungerer



The current trend towards more and more cores on a single chip creates many exciting research opportunities. Our task-placement research addresses the problem of how to place a number of tasks on the different cores of a many-core processor in an efficient way. The developed placement algorithms intend to have minimal runtime while also minimizing the communication overhead of interconnected tasks. The two main cases of task-placement are static and dynamic placement.


Static placement handles the case that an application, composed of a graph of communicating tasks, is placed on a many-core processor which current structure and status is known beforehand. These methods do not consider any runtime information and are well suited for placement at application launch.


Dynamic placement methods cover adaptations of placements at runtime. Due to changed load situations or even faults it might be beneficial to move a specific task from one core to another. This is well suited for optimizations at runtime, especially for applications with unpredictable communication behaviour, or as a reaction to changing conditions on the chip.


An important part of the research is concerned with faulty elements on the chip. With shrinking feature sizes of modern VLSI technology it is hard to ensure consistent quality of mass-produced chips. In order to address predictions that ageing will be a much bigger problem in the future each developed placement algorithm is able to cope with faulty cores, routers or wires on the chip. For the sake of scope we currently only handle permanent faults.


Part of this research is used in the  Teraflux EC project.






  • Connectivity-sensitive Algorithm for Task Placement on a Many-core Considering Faulty Regions
    Sebastian Schlingmann, Arne Garbade, Sebastian Weis, Theo Ungerer
    Proceedings of the 19th International Euromicro Conference on Parallel, Distributed and Network-based Processing (PDP 2011)