A Constraint Programming Approach for Allocation and Scheduling on the CELL Broadband Engine

  • Authors:
  • Luca Benini;Michele Lombardi;Michela Milano;Martino Ruggiero

  • Affiliations:
  • (1) DEIS, University of Bologna, Bologna, Italy 40136;(1) DEIS, University of Bologna, Bologna, Italy 40136;(1) DEIS, University of Bologna, Bologna, Italy 40136;(1) DEIS, University of Bologna, Bologna, Italy 40136

  • Venue:
  • CP '08 Proceedings of the 14th international conference on Principles and Practice of Constraint Programming
  • Year:
  • 2008

Quantified Score

Hi-index 0.00

Visualization

Abstract

The Cell BE processor provides both scalable computation power and flexibility, and it is already being adopted for many computational intensive applications like aerospace, defense, medical imaging and gaming. Despite of its merits, it also presents many challenges, as it is now widely known that is very difficult to program the Cell BE in an efficient manner. Hence, the creation of an efficient software development framework is becoming the key challenge for this computational platform.We have developed a novel software toolkit, called Cellflow, which enables developers to quickly build multi-task applications for Cell-based platform. We support programmers from the initial stage of their work, through a development-time software infrastructure, to the final stage of the application development, proposing a safe and easy-to-use explicit parallel programming model.A fundamental component of the software toolkit is the off-line allocator and scheduler that manages hardware resources while optimizing performance metrics such as execution time, allocation costs, power. The optimization engine receives as input a task graph representing an application, the hardware resources and produces an optimal allocation and scheduling. We have developed various approaches, either based on decomposition [5] or based on pure Constraint Programming, this latter being the core of this paper. We have identified instance features that guide toward the choice of the best solver for the instance at hand.Experimental result show that Constraint Programming (possibly combined with Integer Programming) is a proper tool for dealing with this kind of applications achieving very good performance.