2) Starting from the exit node, the latest allowable start
and completion times are computed by using (7)-(9)
and are shown in Table 1.
3) The array
queue
for this DAG is:
queue
= [10, 8, 5, 9, 2,
7, 3, 6, 4, 1]. Starting from the first node in
queue
, i.e.,
node 10, the first cluster is generated. The search
process visits through the favorite predecessors of
each task. The first processor is allocated tasks 1, 4, 6,
9, and 10. The next search is started from the first un-
assigned task in
queue
, which is task 8. The favorite
predecessor of task 8 is task 6, which has already been
assigned to processor 1, and the value of
last
(8)
³
lact
(6)
is 2, which is greater than or equal to
c
6,8
. Thus, task 6 is
not critical for task 8, and it is not necessary to dupli-
cate task 6 on the same processor as task 8. Conse-
quently, task 5 is chosen to be allocated onto the same
processor as task 8. The rest of the allocations are gen-
erated by following this process until all tasks have
been assigned to a processor.
The processor allocation and the schedule times obtained
by following this algorithm are shown in Fig. 5. For this
example DAG, it can be observed that the schedule time
generated is equal to the
level
of the entry node of the DAG.
Thus, the TDS algorithm generates an optimal schedule for
the example DAG.
3
R
ESULTS
In this section, the performance of TDS algorithm is re-
ported. There are two cases here. In the first case, the DAG
satisfies the condition stated in Section 2. If that condition is
satisfied, then earliest completion time is guaranteed and is
proven below.
The algorithm has also been applied to some practical
DAGs. In this case, the condition is not necessarily satisfied
and the optimal solution may or may not be obtained.
3.1
Condition Is Satisfied
A DAG consists of fork and join nodes. The fork nodes can
be transformed to achieve the earliest possible schedule
time as shown in Fig. 6. The problem arises when schedul-
ing the join nodes, because only one predecessor can be
assigned to the same processor as the join node. In this sub-
section, it is proven that, for join nodes which satisfy the
condition, the schedule time obtained by scheduling the
join node on the same processor as its favorite predecessor,
is optimal. The rest of the predecessors of the join node are
each assigned to a separate processor.
T
HEOREM
3.1.
Given a join node satisfying the condition stated
in Section
2
, the TDS algorithm gives minimum possible
schedule time.
P
ROOF
. Fig. 7 shows an example join node. According to the
condition, tasks
m
and
n
have the highest and the sec-
ond-highest values of {
ect
(
j
) +
c
j
,
i
j
°
pred
(
i
)}. It is as-
sumed that task
m
is assigned to processor
m
and task
n
is assigned to processor
n
. Since task
m
, has the
highest value of
ect
(
m
) +
c
m
,
i
, task
i
is also assigned to
processor
m
, and
est
(
i
) =
max
{
ect
(
m
),
ect
(
n
) +
c
n
,
i
}.