1 Input: Time, R, TS |
2 Output: TST, AWT |
3 double ST, FT, min_FT, Total_Time, Time, TST, AWT, WT; |
4 int Total_node, Total_Task, Task, Total_TaskSet, best_node_ID; |
5 read every taskset from TS; |
6 for (i=0; i<Total_TaskSet; i++) |
7read a task from taskset; |
8for (j=0; j<Task; j++) |
9for (k=0; k<Total_node; k++) |
10if (R=-1) |
11FT=Time; |
12else |
13FT=ST-R; |
14 |
15find minimal min_FT and corresponding k in FT with task j; |
16ST=ST+min_FT; |
17sort all tasks in taskset i from small to large according to FT; |
18ST=0; FT=0; |
19 |
20while (taskset i is not empty) |
21select task tTask with the largest FT in taskset; |
22if tTask=null |
23break; |
24select the node with smallest FT of tTask and return best_node_ID; |
25WT=WT+STbest_node_ID; |
26STbest_node_ID=FTbest_nodee_ID; |
27delete tTask; |
28Task=Task-1; |
29recalculate every FT of the rest of tasks; |
30sort all tasks in taskset i from small to large according to FT; |
31 |
32write the largest ST to Time of all tasks; |
33Total_Time=Total_Time+Time; |
34Total_Task=Total_Task+Task; |
35TST=Total_Time; |
36AWT=WTTotal_Task; |
37 |