A Multipurpose Clustering Algorithm for Task Partitioning in Multicore Reconfigurable Systems

In recent years, multicore systems have become a dominant architecture, introducing new challenges that need to be  addressed in order to take full advantage of their efficiency. Reconfigurable computing has also received a great deal of attention due to its ability to increase the performance of an application through hardware execution, while retaining the flexibility of a software solution. Grouping tasks within an application contributes to coarse-grained partitioning, which can eventually improve the performance of the system. In this paper, we introduce a clustering framework along with a flexible multi-purpose clustering algorithm that initiates task clustering at the functional level based on dynamic profiling information. The clustering framework can be used as the basic step to modify the granularity of tasks in the hardware/software partitioning and scheduling phases. As a result, an elaborate mapping onto the system resources and possibly a higher degree of task parallelism becomes feasible. The framework particularly targets two objectives, 1) to form workload-balanced and 2) loosely-coupled clusters. We evaluated its efficiency using MJPEG as a case study. The experimental results comply with the desired clustering metrics defined through the objectives.

[1]  Jari Nurmi,et al.  Static scheduling techniques for dependent tasks on dynamically reconfigurable devices , 2007, J. Syst. Archit..

[2]  Michel Auguin,et al.  HW / SW partitioning approach for reconfigurable system design , 2002, CASES '02.

[3]  Gang Wang,et al.  Application partitioning on programmable platforms using the ant colony optimization , 2006, J. Embed. Comput..

[4]  Theerayod Wiangtong,et al.  Tabu search with intensification strategy for functional partitioning in hardware-software codesign , 2002, Proceedings. 10th Annual IEEE Symposium on Field-Programmable Custom Computing Machines.

[5]  Theerayod Wiangtong,et al.  Cluster-Driven Hardware/Software Partitioning and Scheduling Approach for a Reconfigurable Computer System , 2003, FPL.

[6]  Theerayod Wiangtong,et al.  Comparing Three Heuristic Search Methods for Functional Partitioning in Hardware–Software Codesign , 2002, Des. Autom. Embed. Syst..

[7]  Ranga Vemuri,et al.  Fine-grained and coarse-grained behavioral partitioning with effective utilization of memory and design space exploration for multi-FPGA architectures , 2001, IEEE Trans. Very Large Scale Integr. Syst..

[8]  Zonghua Gu,et al.  Optimal Static Task Scheduling on Reconfigurable Hardware Devices Using Model-Checking , 2007, 13th IEEE Real Time and Embedded Technology and Applications Symposium (RTAS'07).

[9]  Yu-Kwong Kwok,et al.  On the design, control, and use of a reconfigurable heterogeneous multi-core system-on-a-chip , 2008, 2008 IEEE International Symposium on Parallel and Distributed Processing.