2017 Volume E100.A Issue 8 Pages 1640-1649
Many-core architecture is becoming an attractive design choice in high-end embedded systems design. There are, however, many important design issues, and load balancing is one of them. In this work, we take the approach of diffusive load balancing which enables autonomic load distribution in many-core systems. We improve the existing schemes by adding the concept of simulated annealing for more effective load distribution. The modified scheme is also capable of managing a situation of non-uniform granularity of task loading, which the existing ones cannot. In addition, the suggested scheme is extended to be able to handle dependencies existing in task graphs where tasks have communications between each other. As experiments, we tried various existing schemes as well as the proposed one to map synthetic applications and real world applications on a many-core architecture with 21 cores and 4 memory tiles. For the applications without communications, the experiments show that the proposed scheme gives the best results in terms of peak load and standard deviation. For real applications such as mp3 decoder and h.263 encoder which have communications between tasks, we show the effectiveness of our communication-aware scheme for load balancing in terms of throughput.