Aiming at the static task scheduling problems in heterogeneous environment, a heuristic task scheduling algorithm named HCPPEFT is proposed. In task prioritizing phase, there are three levels of priority in the algorithm to choose task. First, the critical tasks have the highest priority, secondly the tasks with longer path to exit task will be selected, and then algorithm will choose tasks with less predecessors to schedule. In resource selection phase, the algorithm is selected task duplication to reduce the interresource communication cost, besides forecasting the impact of an assignment for all children of the current task permits better decisions to be made in selecting resources. The algorithm proposed is compared with STDH, PEFT, and HEFT algorithms through randomly generated graphs and sets of task graphs. The experimental results show that the new algorithm can achieve better scheduling performance.
A heterogeneous computing system (HCS) is a computing platform with diverse sets of interconnected resources via high speed network to execute parallel and distributed applications. Due to diverse computational resources, the efficiency of an application on the available resources is one of the key factors for achieving high performance computing. The general form of task scheduling problem in HCS can be represented as directed acyclic graph (DAG). The common objective of scheduling is to assign tasks onto suitable resources and order their execution so that task precedence requirements are satisfied with a minimum schedule length [
A typical task scheduling model is based on a directed acyclic graph, including static and dynamic scheduling. Heuristic algorithm is static scheduling algorithm, which is composed of duplicationbased algorithms, clustering algorithms, and list scheduling algorithms [
The idea of task duplication is to try to duplicate the parents of the current selected task onto the selected resource or on to the other resources, aiming to reduce or optimize the task finish time. Many duplicationbased algorithms are proposed in recent years; for example, in [
Clustering algorithms merge tasks in a DAG to an unlimited number of clusters, and tasks in a cluster are allocated on the same resource. Some classical examples are cluster mapping algorithm (CMA) [
The HEFT [
The PEFT [
The STDH [
In this paper, we propose a synthesized heuristic task scheduling algorithm based on both duplicationbased techniques and listbased approach for heterogeneous computing systems. The HCPPEFT algorithm has two phases, the task prioritizing phase and the resource selection phase (see Algorithm
(1)
(2)
(3)
(4)
(5)
(6)
(7)
(8)
(9)
(10)
(11)
(12)
(13)
(14)
(15)
(16)
(17)
A scheduling system model is composed of an application in heterogeneous computing environment. An application is represented by
Before proceeding to the next section, it is necessary to discuss some scheduling attributes such as rank upward, rank downward, earliest start time, earliest finish time, and optimistic cost table, which will be used in the proposed scheduling algorithm.
A task with no predecessors is called an entry task
The upward rank of a task
If the task start execution time depends on the arrival time of parent tasks, there will be a free time slot, that is, the task to wait for the time of arrival of the parent task, can be defined as
The OCT is a matrix in which the rows indicate the number of tasks and the columns indicate the number of resources, where each element
The schedule length (makespan) of the task graph denotes the finish time of the last task and is defined as follows:
The objective function of the task scheduling problem is to determine an assignment of tasks of a given task graph to resources, such that its schedule length is minimized, which satisfying all precedence constraints.
The critical path is a path with the longest execution time in directed acyclic graph, which of task play a decisive role to finish time. In the process of task scheduling, critical task is assigned the highest priority to make it firstly scheduled. However, critical task usually have one or more parent tasks. If parent tasks cannot get a reasonable scheduling, the start execution time will be delayed. Therefore it not only assigns besides the critical tasks the highest priority, but also needs the parent tasks of critical tasks to allocate higherpriority. Immediate parent tasks are sorted in a decreasing order of rank upward values. If the rank upward values are equal, select the tasks with respect to the predecessors increase. In order to construct the task scheduling queue, two empty queues of tasks are constructed firstly, which are CTQ and RTQ. CTQ is used to store critical task and RTQ is used to store the task scheduling ready queue. The process of constructing task scheduling queues is expressed as Figure
Upward rank (
The critical path length is equal to the entry task’s priority. The entry task is marked as a critical path task. If
The CTQ at the beginning contains all critical tasks. In fact a critical task will be omitted from the CTQ and added to the RTQ after all parent tasks are added to the RTQ. The priority of the parent tasks is determined based on their
If there are two or more parent tasks of
The above steps are executed until the CTQ queue is null. The RTQ queue is task scheduling queue.
Constructing task scheduling queues.
To illustrate how the task prioritizing queue is constructed, a random task graph with 10 tasks and 16 edges is shown in Figure
Computation costs.
Task 




1  11  19  6 
2  18  5  12 
3  7  20  13 
4  12  16  4 
5  19  5  16 
6  8  23  14 
7  14  24  19 
8  7  9  20 
9  12  14  16 
10  17  7  13 
Values of attributed used in HCPPEFT algorithm for task graph in Figure




Number of predecessors 


105.667  0.000  105.667  0 

73.000  23.000  96.000  1 

69.667  36.000  105.667  1 

57.000  25.000  82.000  1 

76.667  21.000  97.667  1 

58.333  26.000  84.333  1 

50.333  55.333  105.667  3 

36.333  45.667  82.000  2 

36.333  66.333  102.667  3 

12.333  93.333  105.667  3 
A sample task graph with 10 tasks.
In this phase, tasks are assigned to the resources and duplication is employed to minimize the finish time. To start execution on a resource, the task
If it is satisfied, then the parent task
For a given DAG, the time complexity of scheduling algorithm is usually expressed in terms of number of tasks
To evaluate the performance of the HCPPEFT algorithm, we implement this algorithm on the PC platform using MATLAB software.
A randomly generated task graph is shown in Figure
Optimistic cost table for the DAG of Figure
Task 





47  51  45 

31  31  32 

31  31  32 

29  29  29 

31  31  32 

28  21  28 

17  7  13 

17  7  13 

17  7  13 

0  0  0 
Schedule produced by the HCPPEFT algorithm in each iteration.
Step  Ready queue  Task selected  EFT 

Resource selected  






 
1 


11  19 

58  70 


2 



39  19 

70  51 

3 


37 

22  68 

54 

4 


36  25 

67  56 


5 



49  52  64 

65 

6 


31  65 

60  94 


7 



58  43 

65  56 

8 


45  72 

73  93 


9 


55  63 

72  70 


10 


79 

81  79 

81 

As an illustration, Figure
Schedule of task graph with the HCPPEFT algorithm.
This section presents a performance comparison of the proposed algorithm HCPPEFT with four wellknown task scheduling algorithms such as STDH, PEFT, and HEFT by randomly generated task graph and sets of task graphs. Three metrics are used for performance evaluation.
Since a large set of task graphs with different properties is used, it is necessary to normalize the schedule length to the lower bound, which is called the schedule length ratio (SLR). SLR is defined as follows:
The speedup value for a given task graph is defined as the ratio of sequential execution times to the parallel execution times. The sequential execution time is computed by assigning all tasks to a single resource that minimizes the computation costs. Speedup is defined as follows:
In the general case, efficiency is defined as the ratio of the speedup value to the number of resources used in schedule task graph. Efficiency is defined as follows:
To evaluate the performance of the HCPPEFT algorithm, we first considered randomly generated task graphs. For this purpose, a random graph generator available at [
The performance of the HCPPEFT, STDH, PEFT, and HEFT algorithms is compared with respect to various graph characteristics according to SLR, speedup, and efficiency.
Firstly, we have evaluated the performance of the algorithm with respect to various numbers of tasks and the number of resources was considered as a fixed value of 10. Each value of the experimental results is the average of the results produced from 200 different random task graphs. In these experiments CCR and out_degree were considered as fixed value of 2 and 5, and
Average SLR with
Average speedup with
The next experiment is with respect to CCR increment. Each value of the experimental results is the average of the results produced from 200 different random task graphs. In each graph, the CCR is randomly selected from 0.1, 0.25, 0.5, 1, 2, and 5, and the node weight is generated randomly from 1 to 30, as the edge weight is 1 to 300. Also
Average SLR with 100 nodes for random task graphs.
Average speedup with 100 nodes for random task graphs.
The last set of experiments compare the performance of the algorithm as the value of resource numbers increase. Each value of the experimental results is the average of the results produced from 200 different random task graphs. In these experiments CCR,
Efficiency for different numbers of resources.
In addition to randomly generated task graph, we also use the sets of task graphs to evaluate the performance of the new algorithm. The reference and related parameters of the sets of task graphs are shown in Tables
Reference and related parameters for the sets of task graphs.
Serial number  Number of tasks  Number of resource  CCR  Reference 

1  10  3  0.6025  [ 
2  5  3  0.4508  [ 
3  12  4  0.3003  [ 
4  10  3  0.3946  [ 
5  10  3  0.4170  [ 
Makespan with HEFT, PEFT, STDH, and HCPPEFT for the sets of task graphs.
In this paper, we have proposed a synthesized task scheduling algorithm for heterogeneous computing systems called HCPPEFT. This new algorithm is a twophase algorithm that combines mechanisms of listschedulingbased, duplicationbased, and lookaheadbased algorithms. Therefore, the HCPPEFT algorithm provides a more efficient way to schedule general task graphs. In the task prioritizing phase, three levels of priority are proposed to choose task. The method of constructing task scheduling queue not only takes account of critical tasks but also takes account of the importance of parent tasks. In the resource selection phase, the duplication of parent tasks is to reduce communication costs. Forecasting the impact of an assignment for all children of the current task is to select a best resource. The effective performance of the new algorithm is compared to three of the best existing scheduling algorithms: HEFT, PEFT, and STDH algorithms. The comparative study is based on randomly generated task graph and the sets of task graphs. The HCPPEFT algorithm outperforms the other algorithms in terms of average SLR, speedup, and efficiency.
The authors declare that there is no conflict of interests regarding the publication of this paper.
This work was supported by the Foundation items (NFS of China: no. 61363031, GuangXiSci. and Tech. Development Foundation: no. GKG121180172C, GuilinSci. and Tech. Development Foundation: no. 2012010413) for supporting our work.