Communication-Aware Scheduling for Malleable Tasks
Kana Shimada, Ittetsu Taniguchi, Hiroyuki Tomiyama · 2019
Task scheduling is an important process in the design of multicore computing systems. This paper presents methods for scheduling of malleable tasks. The scheduling methods decide not only the execution order of the tasks but also the number of cores assigned to the individual tasks, simultaneously. Different from previous work on malleable task scheduling, this paper takes into account the inter-task communication overhead during scheduling. The communication is necessary if the main thread of a predecessor task and that of a successor task are assigned on different cores. This paper proposes two methods for malleable task scheduling with communication overhead. One is a two-step method which schedules tasks first and then assigns threads in the tasks onto cores. Other is an integrated method which performs task scheduling and thread assignment simultaneously. Both of the two methods are based on integer linear programming (ILP). The proposed methods are evaluated through experiments and encouraging results are obtained.