Load Sharing in Heterogeneous Computing

In heterogeneous parallel computing systems based on message passing, every processor or computer has capability of scheduling and executing jobs autonomously and independently. For high performance computing, a processor, which originally has a divisible job, can call other heterogeneous processors for co computing with load sharing so that job completing time can be decreased. In this paper, a scheme for load sharing in heterogeneous computing is presented. Firstly, invoking load sharing protocol, the originating processor collects available data such as load sharing interval time and computing power from its partners. Secondly, a function is constructed which represents the relationship between the total job magnitude and the job completion time. The function is essential for choosing a suite of appropriate processors, optimally partitioning and scheduling jobs, as well as minimizing the job completing time. Finally, an efficient algorithm is proposed through the examples in application and experiments. The algorithm is real time at the moment when the job is just started, and can be extended to the situation of multiple jobs originated at multiple processors.