In this section, we formulate constraints of the proposed scheduling model. Duration of task u (u=1,2,...,n) is formulated as follows:
where Nu,i indicates number of processor cycles performed at fi (i=1,2,...,m) for the execution of task u. Therefore:
To ensure each task finishes its execution before Td, for u=1,2,...,n, we have:
where Su represents start time of the execution of task u. Furthermore, the precedence constraint is formulated as follows:
(9) 

Su+Duru≤Sv,∀e(u,v)∈E. 

Here, we do not consider any intertask communication cost associated with e(u,v) for sending output data of task u to input data of task v (The model can be easily extended to incorporate this cost).
For processor assignment for task u to processor k,k=1,2,...,K, we introduce the decision variable of Pk,u which is defined as follows:
(10) 

Pk,u={1if task u is %
assigned to processor k0otherwise. 

Therefore, we have the following constraint:
(11) 

K∑k=1Pk,u=1,for u=1,2,...,n. 

One other important constraint that needs to be satisfied is that the execution of tasks assigned to the same processor shall not overlap each other (nonpreemptive scheduling). For this, we define an auxiliary decision variable called Ok,u,v representing ordering of tasks. For k=1,2,...,K; u=1,2,...,n; v=1,2,...,n,v≠u; we define:
(12) 

Ok,u,v=⎧⎪
⎪
⎪
⎪⎨⎪
⎪
⎪
⎪⎩1if task u is %
scheduled immediately before task v on processor k0otherwise. 

In addition, if task v is the first task assigned to processor k, we define Ok,0,v to be 1 (and is 0 otherwise). On the other hand, if task u is the last task assigned to processor k, we define Ok,u,n+1 to be 1 (and is 0 otherwise).
Furthermore, if there is no task assigned to processor k, we define Ok,0,n+1 to be 1 (and is 0 otherwise).
Accordingly, using (12) and the definitions provided for Ok,0,v, Ok,u,n+1 and Ok,0,n+1, we have the following constraints for k=1,2,...,K:
(13) 

n+1∑v=1v≠uOk,u,v=Pk,u,for u=0,1,...,n 

(14) 

n∑u=0u≠vOk,u,v=Pk,v,for v=1,2,...,n+1. 

According to (13), if task u is assigned to processor k (Pk,u=1), either there is one and only one task scheduled immediately after task u on processor k or task u is the last task assigned to processor k. Similarly, according to (14), if task v is assigned to processor k (Pk,v=1), either there is one and only one task scheduled immediately before task v on processor k or task v is the first task assigned to processor k. In both (13) and (14), Pk,0 and Pk,n+1 are defined as 1 for all k=1,2,...,K.
Comments
There are no comments yet.