<!DOCTYPE article PUBLIC "-//NLM//DTD JATS (Z39.96) Journal Archiving and Interchange DTD v1.0 20120330//EN" "JATS-archivearticle1.dtd">
<article xmlns:xlink="http://www.w3.org/1999/xlink">
  <front>
    <journal-meta />
    <article-meta>
      <title-group>
        <article-title>Dynamic Local Scheduling of Multiple DAGs in Dynamic Local Scheduling of Multiple DAGs in Distributed Heterogeneous Systems Distributed Heterogeneous Systems</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Ondˇrej Votava</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Peter Macejko</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Jan Janeˇcek</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Ondrej Votava</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Peter Macejko</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Jan Janecek</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>Czech Technical University in Prague</institution>
        </aff>
        <aff id="aff1">
          <label>1</label>
          <institution>votaCvzoenc1h</institution>
          ,
          <addr-line>Tmecahcneijcpa1l ,Unjaivneercsietky</addr-line>
        </aff>
      </contrib-group>
      <pub-date>
        <year>2015</year>
      </pub-date>
      <volume>1343</volume>
      <abstract>
        <p>Heterogeneous computational platform offers a great ratio between the computational power and the price of the system. Static and dynamic scheduling methods offer a good way of how to use these systems efficiently and therefore many algorithms were proposed in the literature in past years. The aim of this article is to present the dynamic (on-line) algorithm which schedules multiple DAG applications without any central node and the schedule is created only with the knowledge of node's network neigbourhood. The algorithm achieves great level of fairness for more DAGs and total computation time is close to the standard and well known competitors.</p>
      </abstract>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>Introduction</title>
      <p>
        The structure of this article, which is the enhanced version of [
        <xref ref-type="bibr" rid="ref17">17</xref>
        ], is as
follows, in the section two we describe the problem of scheduling and make a
brief summary of related work. In the section three we describe the algorithm
itself and in the following section we describe the testing environment and results
we obtained by running several simulations. In the fifth section we conclude the
results from section four, show the pros and cons of the presented algorithm and
discuss the future improvements.
2
      </p>
    </sec>
    <sec id="sec-2">
      <title>Problem definition</title>
      <p>
        The application model can be described as a directed acyclic graph AM = (V, E, B, C)
[
        <xref ref-type="bibr" rid="ref12 ref18">12, 18</xref>
        ], where:
V = {v1, v2, . . . , vv}, |V| = v is the set of tasks, task vi ∈ V represents the
piece of code that has to be executed sequentially on the same machine,
E = {e1, e2, . . . , ee}, |E| = e is the set of edges, the edge ej = (vk, vl) represents
data dependencies, i.e. the task vl cannot start the computation until the
data from task vk has been received, task vk is called the parent of vl, vl is
called the child of vk,
B = {b1, b2, . . . , bv}, |B| = v is the set of computation costs (e.g. number of
instructions), where bi ∈ B is the computation cost for the task vi,
C = {c1, c2, . . . , ce}, |C| = e is the set of data dependency costs, where cj = ck,l
is the data dependency cost (e.g. amount of data) corresponding to the edge
ej = (vk, vl).
      </p>
      <p>The task which has no parents or children is called entry or exit task
respectively. If there are more than one entry/exit tasks in the graph a new virtual
entry/exit task can be added to the graph. Such a task would have zero weight
and would be connected by zero weight edges to the real entry/exit tasks.</p>
      <p>Since the application can be described as DAG we use terms application,
DAG application or simply DAG as synonyms in this paper.</p>
      <p>The computation system consist of a set of computing units all of which are
connected by a high speed communication network. It can be described using a
general graph CS = (P, Q, R, S), where:
P = {p1, p2, . . . , pp}, |P| = p is a set of the computers,
Q = {q1, q2, . . . , qp}, |Q| = p is the set of speeds of computers, where qi is the
speed of computer pi,
R is a matrix describing the communication costs, the size of R is p × p,
S is a matrix used to describe the communication startup costs, it is usually
one dimensional, i.e. it’s size is p × 1.
2.1</p>
      <p>Merging application and computation model
Since the structure of the application and the characteristics of the computation
systems are known it is no problem to get the information about computation
time of each application’s node at any computation node. This information is
stored in a W matrix, whose dimensions are v × p, where the item at the position
[i, j] contains the information about the length of the computation of the task
i on a computation unit j. The value of W[i, j] is computed by the following
equation
(1)
(2)
(3)
where bi is the computation cost of task vi and qj is the speed of computer pj
(e.g. instructions per second).</p>
      <p>The total communication time for a message m (corresponding data
dependency for the edge (vk, vl)) that is send from the computer i to the computer j
can be computed by this equation
cm = S[i] + R[i][j] · ck,l.</p>
      <p>W[i, j] =
bi ,
qj
2.2</p>
      <p>Our model description
The content of the matrix W is dependent on the properties of computation
nodes. However, the computers differ only in a certain ways. The “fast”
computers are k times faster than “slow” computers. On that account the columns
in the W are usually only multiples of one column. This information can be
reduced to the constant kp for each processor p. When the computation system
is allowed to change, the matrix W is not useable either since it does not reflect
any dynamic behaviour.</p>
      <p>The structure, we decided to use, can be described as follows. We selected one
processor to serve as a reference – pref . The computation time of one instruction
on this processor lasts one time unit. The speedup of the processor pi is then
defined as</p>
      <p>SUp(i) =
qi ,
qref
where qi is the speed of processor pi and qref is the speed of the reference
processor.</p>
      <p>The time duration of computation of a task vj on the processor pi is then
computed “on the fly” by the equation
timej,i =</p>
      <p>bj
SUp(i)
.</p>
      <p>(4)
Finally, the computation platform is described as a set of speedups and the
communication matrices and the merging of application and computation model is
being done as a part of the computation. Even the communication matrices may
be reduced in our model. They contain only information about computation
node’s neighbours and differ for all nodes. Still, this is a problem for
implementation part and does not affect the description model, as the “neighbour’s”
matrices are only a part of “global” communication matrices.
2.3</p>
      <p>
        Related work
Task scheduling or task mapping has been in active research for a long time.
Several static algorithms were introduced and dynamic algorithms were published
too. Most of static scheduling algorithms are designed to work with one DAG.
List scheduling algorithms are very popular and they are often used. HEFT [
        <xref ref-type="bibr" rid="ref19">19</xref>
        ]
is a simple and effective algorithm used as a reference in our article. HEFT
creates a list of tasks sorted by an upward rank1 and then it assigns tasks to the
processor so that the execution time of the task is minimized. Another algorithm
presented in [
        <xref ref-type="bibr" rid="ref19">19</xref>
        ] is Critical Path On a Processor (CPOP). This algorithm is more
complex and optimizes tasks on a critical path. By modifying list algorithms and
allowing the execution of tasks more than once tasks duplication algorithms were
introduces. HCPFD [
        <xref ref-type="bibr" rid="ref2">2</xref>
        ] compared to the HEFT obtains better makespan in most
cases. Task duplication achieves surprisingly good results when applied to the
computation model containing multi core computers [
        <xref ref-type="bibr" rid="ref18">18</xref>
        ].
      </p>
      <p>
        The way of computing multiple DAGs is usually presented in dynamic
algorithms. In [
        <xref ref-type="bibr" rid="ref20">20</xref>
        ] there was introduced a static method how to schedule multiple
DAGs and the aim was not only to optimize makespan but also to achieve the
fair sharing of resources for the competing DAGs. The idea of generating a new
graph by appending whole DAGs to the current one is used in [
        <xref ref-type="bibr" rid="ref21">21</xref>
        ]. Compared to
[
        <xref ref-type="bibr" rid="ref20">20</xref>
        ] this algorithm is dynamic, i.e. the graph is build when a new DAG arrives
to the system.
      </p>
      <p>
        Truly dynamic algorithm is described in [
        <xref ref-type="bibr" rid="ref14">14</xref>
        ]. This algorithm divides the
nodes into two groups. The first one contains nodes used for computation, the
second one contains scheduling nodes. Scheduling nodes are independent and
the knowledge about the activity of other scheduling nodes is received through
the statistics of usage of the computing nodes. The quality of such scheduling is
then dependent on the quality of statistics created by computation nodes.
      </p>
      <sec id="sec-2-1">
        <title>1 See [19] for details</title>
        <p>
          Unlike the previous one the algorithm presented in [
          <xref ref-type="bibr" rid="ref16">16</xref>
          ] is based on one central
scheduling unit. The algorithm takes into account the time for scheduling and
dispatching and focuses on reliability costs. Another model of completely
distributed algorithm is presented in [
          <xref ref-type="bibr" rid="ref15">15</xref>
          ]. This algorithm divides nodes into groups
and uses two levels of scheduling. The high level decides which group to use and
low level decides which node in the group to use.
        </p>
        <p>
          The algorithm described in [
          <xref ref-type="bibr" rid="ref22">22</xref>
          ] works a bit different way. The node works
with it’s neighborhood and the distribution of task of parallel application is done
according to the load of the neighbours. If the load of a node is too high, the
algorithm allows the task to be migrated among the network. Genetic programming
technique is used to decide where to migrate the task.
        </p>
        <p>
          The problem of task scheduling is loosely coupled with the network
throughput. The description of network used in this paper is not very close to the reality
and the problems connected to bottle necks or varying delay may cause
problems. The behaviour of task scheduling applications running in the network,
which has different parameters, is very well described in [
          <xref ref-type="bibr" rid="ref23">23</xref>
          ]. According to this
article we expect there are no bottle necks in the networks.
3
        </p>
      </sec>
    </sec>
    <sec id="sec-3">
      <title>Proposed algorithm</title>
      <p>In this section we present the algorithm Dynamic Local Multiple DAG (DLMDAG).
The algorithm itself, described in Algorithm 1, is a dynamic task scheduling
algorithm that supports both homogeneous and heterogeneous computation
platforms.</p>
      <p>The main idea of the algorithm is based on the assumption that the
communication lasts only very short time compared to the computation (at least in one
order of magnitude). The computation node, which is the creator of a schedule
for a certain DAG application, sends a message to all of its neighbours where
it asks how long would the computation of these tasks last if they were
computed by the neighbour. Then it continues computing the task and during this
computation replies for the question arrive. According to the data (timestamps)
received, the node makes a schedule for the set of tasks (asked in previous step),
then it sends a message to it’s neighbours with the information about who should
compute which task and generates another question about the computation time
for the next set of tasks.</p>
      <p>The algorithm description (Algorithm 1) uses these terms. The task is called
“ready” when all of its data dependencies are fulfilled. Ready tasks are stored in
a tasksReady priority queue. The criterion for ordering is the time computed by
computeP riority. The task that is ready and is also scheduled should be stored
in a computableT asks queue. Each task’s representation contains one priority
queue for storing the pair information about finish time and neighbour at which
the finish time would be achieved. The queue is ordered by the time.</p>
      <p>computeP riority method is used to make the timestamps for the tasks. It is
computed when a DAG application comes to the computation node (pk) and it
Algorithm 1 The core
is generated according to this equation
priority(vj ) = timej,k +</p>
      <p>max priority(i),
∀i∈parvj
(5)
where parvj is the set of parents of node vj and priority(v0) = time0,k.</p>
      <p>
        The final scheduling is based on the priority queue task.orderingQueue.
The scheduling step described in Algorithm 2 is close to HEFT [
        <xref ref-type="bibr" rid="ref19">19</xref>
        ]. One big
difference is that our algorithm uses the reduced list of tasks2 and is forced to
use all neighbours3 even if it would be slower than computing at local site.
      </p>
      <p>The algorithm is called local. It is because it uses only information about
the node’s local neighborhood. Each node creates a set of neighbours in the
initialization stage of the algorithm. Therefore there are no matrices R and S
or there are these matrices but they are different for each computational node.</p>
      <sec id="sec-3-1">
        <title>2 Only ready tasks are scheduled 3 If there are not enough ready tasks then not all neighbours are used.</title>
        <p>The size of matrix R for the computational node pi is Rpi = (si × si) where
s = |neighboursi| is the amount of neighbours of the node pi.
The time complexity of the algorithm can be divided into two parts. The
computation part is connected to the sorting and scheduling phase of the algorithm and
the communication part is connected to the necessity of exchanging messages for
the scheduling phase. The DAG consists of v tasks and the computation node
has s neighbours. One question message is sent about every task to all of the
neighbours. Question contains information from one to s tasks and the precise
number is dependent on the structure of the DAG. The node which receives the
question message always sends a reply to it. As the node finishes the
scheduling phase of the algorithm another message with a schedule is sent to every
neighbour who is involved in the schedule. The last message (schedule
information) can be put together with the question’s one and there is from 3 v/s to 3 v
messages sent in total.</p>
        <p>Computation part is based on the sorting operations of the algorithm. There
are two types of priority queues being used all of which are based on the
heap. The first one is the tasksReady. Every task from a DAG is put once
in this queue and the time complexity is O(v log v). The second priority queue
(task.orderingQueue) stores one piece of information for every neighbour. The
queue is used for every task and for every neighbour and the time complexity
obtained by this queue is O(v s log s) and therefore the time complexity of the
computational part of the algorithm is O(v log v + v s log s).
4</p>
      </sec>
    </sec>
    <sec id="sec-4">
      <title>Performance and comparison</title>
      <p>
        The algorithm was implemented in a simulation environment [
        <xref ref-type="bibr" rid="ref24">24</xref>
        ] and it was
executed several times for different scenarios. Makespan, unfairness and average
utilization of computing nodes were measured.
      </p>
      <p>
        Makespan is the total computation time of the application, it is defined as
makespan(DAG) = f inishT ime(vl) − startT ime(vs),
(6)
where f inishT ime(vl) is the time when the last task of DAG was computed and
startT ime(vs) is the time when the first task of DAG began the computation.
where Tshared is the execution time when more than one DAG was scheduled and
Tsingle is the execution time when there was only this DAG scheduled. The
schedule is fair when all of the DAGs achieve almost the same slowdown[
        <xref ref-type="bibr" rid="ref20">20</xref>
        ] and the
schedule is unfair when there are big differences in the slowdown of DAGs. The
unfairness for the schedule S for a set of n DAGs A = {DAG1, DAG2, ..., DAGn}
is defined
      </p>
      <p>U nf airness(S) = X |Slowdown(d) − AvgSlowdown|,
where average slowdown is defined as</p>
      <p>AvgSlowdown =</p>
      <p>∀d∈A
1 X Slowdown(d)
n</p>
      <p>The utilization of a computation unit pj for the schedule S is computed by
this equation:</p>
      <p>U tilS(pj) =</p>
      <p>makespan(t)/totalT imej,</p>
      <p>Since several DAG applications compete for the shared resources the
execution time for each DAG is longer compared to the execution time when there was
the only one application in the system. The slowdown of the DAG represents
ratio of the execution time when only one DAG was in system and when there
were more in the system. It is described as</p>
      <p>Slowdown(DAG) = Tshared(DAG)/Tsingle(DAG),
(7)
(8)
(9)
(10)
(11)
∀d∈A</p>
      <p>X
∀t∈tasksS
where tasksS is a set of tasks which were computed on a pj in the schedule S
and totalT imej is the total time of the simulation, which is the time when the
last task of all DAGs has finished.</p>
      <p>Average utilization for the whole set of processors P and for the schedule S
is then defined as
p
AvgU tilS(P) = 1 X U tilS(pi).</p>
      <p>p i=1
4.1</p>
      <p>
        Testing environment
Three computation platforms containing 5, 10 and 20 computers were created.
A full mesh with different communication speed for several lines was chosen as
a connection network – this created a network without bottle necks and allowed
the algorithm obtain minimal makespan time [
        <xref ref-type="bibr" rid="ref23">23</xref>
        ].
      </p>
      <p>Nodes were divided into groups of 5 and the group used a gigabit connection
with a delay of 2 ms. In the network with ten nodes the groups were connected
by 100 MBit lines and in the network with 20 nodes the groups were connected
as follows:</p>
      <p>6
Number of DAGs
8</p>
      <p>10</p>
      <p>6
Number of DAGs
8</p>
      <p>10
Fig. 4. Unfairness for different
concurrently running DAGs (all platforms)
– 4 groups of 5 nodes intraconnected by gigabit,
– 2 groups connected by 100 MBit,
– 3rd and 4th group connected by 10 MBit with others.</p>
      <p>
        Sets of 2, 4, 6, 8 and 10 applications were generated using the method
described in [
        <xref ref-type="bibr" rid="ref19">19</xref>
        ]. The application contained 25 tasks with different computation
and data dependency costs. The schedule for each of the set was generated by
simulation4 of DLMDAG algorithm and by static algorithms HEFT and CPOP.
      </p>
      <p>We used two methods of connecting several DAGs into one for the static
algorithms, the first one is sequence execution of DAGs in a row, the second
one is to generate virtual start and end nodes and connect DAGs to these nodes
with a zero weighted edges. DAGs were ordered in the sequential execution test
by the rule the shorter the makespan of DAG is the sooner it is executed. In
total there were 100 sets of 2 DAGs, 100 sets of 4 DAGs etc. and the results
we obtained we averaged. For the DLMDAG all DAGs arrived to the system at
time 0 and on the one node.
4.2</p>
      <p>Results
Results of sequential execution of DAGs for HEFT and CPOP achieved much
longer makespans and therefore were not included into graphs. HEFT par and
CPOP par mean that connection of DAGs was created using virtual start and
end tasks.</p>
      <p>
        The makespan achieved by DLMDAG is very close to the HEFT and CPOP
(fig. 3). The differences after averaging were just units of percents. The special
case was the architecture of five computers (fig. 8), in this case DLMDAG
outperforms the others. When there were 10 or 20 computers in the system (fig. 6),
DLMDAG achieved slightly worse results. Since HEFT and CPOP use the whole
4 Simulation tool OMNeT++[
        <xref ref-type="bibr" rid="ref24">24</xref>
        ] was used
0.8
s
s
ifftvne 0.6
ce
e
e
g
rae 0.4
v
A
      </p>
      <p>6
Number of DAGs
8</p>
      <p>10</p>
      <p>6
Number of DAGs
8</p>
      <p>10
Fig. 6. Makespan for different numbers
of applications (20 PC platform)
2
4</p>
      <p>6
Number of DAGs
8
10
2
4</p>
      <p>6
Number of DAGs
8
10
Fig. 7. Unfairness for different numbers
of applications (20 PC platform)
Fig. 8. Makespan for diferent numbers
of applications (5 PC platform)
structure of applications DLMDAG works only with ready tasks and therefore it
may be unable to use the platform with more devices so efficiently. These results
are then dependent on the structure of the applications that were scheduled.
The more parallel application is, the better results DLMDAG obtains.</p>
      <p>The unfairness (figures 4, 7) for DLMDAG is at the very low level and the
growth of it is slow. The unfairness level obtained by HEFT and CPOP in
comparison with DLMDAG is worse.</p>
      <p>The utilization of nodes (figure 5) corresponds to the makespan achieved by
the algorithms. Growing the amount of DAGs in the system the utilization of
nodes increases for all algorithms. As mentioned earlier, DLMDAG achieves high
level of parallelization and therefore the average utilization of all nodes is also
increasing.
5</p>
    </sec>
    <sec id="sec-5">
      <title>Conclusion</title>
      <p>The algorithm presented in this article is dynamic, it does not use any central
point for scheduling neither it requires the information about the whole network.
DLMDAG is based on the local knowledge of the network – only neighbours
create the schedule – and the schedule is created using several messages by which the
computation times are gathered on the scheduling node. The simulations of the
algorithm were executed and results obtained were compared to the traditional
offline scheduling algorithms.</p>
      <p>DLMDAG is able to use the computation resources in a better way than
compared algorithms when there are more tasks in the system than
computation units. As the number of computation nodes increases the result DLMDAG
achieves become worse than competitor’s.</p>
      <p>Future work There are several possibilities to improve the proposed algorithm.
Initially the computation systems do change. The algorithm should be able to
modify the schedules to reflect the network changes. Subsequently the current
algorithm is fixed to the scheduling node and it’s neighbours and this may cause
performance problems, the algorithm could be able to move the application to
some other node with different neighbours.</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          1.
          <string-name>
            <given-names>D.</given-names>
            <surname>Feitelson</surname>
          </string-name>
          ,
          <string-name>
            <given-names>L.</given-names>
            <surname>Rudolph</surname>
          </string-name>
          ,
          <string-name>
            <given-names>U.</given-names>
            <surname>Schwiegelshohn</surname>
          </string-name>
          ,
          <string-name>
            <given-names>K.</given-names>
            <surname>Sevcik</surname>
          </string-name>
          , and
          <string-name>
            <given-names>P.</given-names>
            <surname>Wong</surname>
          </string-name>
          , “
          <article-title>Theory and practice in parallel job scheduling,” in Job Scheduling Strategies for Parallel</article-title>
          <string-name>
            <surname>Processing (D. Feitelson</surname>
          </string-name>
          and L. Rudolph, eds.), vol.
          <volume>1291</volume>
          of Lecture Notes in Computer Science, pp.
          <fpage>1</fpage>
          -
          <lpage>34</lpage>
          , Springer Berlin / Heidelberg,
          <year>1997</year>
          .
          <volume>10</volume>
          .
          <issue>1007</issue>
          /3-540-63574-2
          <fpage>14</fpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          2.
          <string-name>
            <given-names>T.</given-names>
            <surname>Hagras</surname>
          </string-name>
          and
          <string-name>
            <given-names>J.</given-names>
            <surname>Janecek</surname>
          </string-name>
          ,
          <article-title>“A high performance, low complexity algorithm for compile-time task scheduling in heterogeneous systems,” Parallel Computing</article-title>
          , vol.
          <volume>31</volume>
          , no.
          <issue>7</issue>
          , pp.
          <fpage>653</fpage>
          -
          <lpage>670</lpage>
          ,
          <year>2005</year>
          . Heterogeneous Computing.
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          3.
          <string-name>
            <given-names>H.</given-names>
            <surname>Kikuchi</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R.</given-names>
            <surname>Kalia</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Nakano</surname>
          </string-name>
          ,
          <string-name>
            <given-names>P.</given-names>
            <surname>Vashishta</surname>
          </string-name>
          ,
          <string-name>
            <given-names>H.</given-names>
            <surname>Iyetomi</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Ogata</surname>
          </string-name>
          ,
          <string-name>
            <given-names>T.</given-names>
            <surname>Kouno</surname>
          </string-name>
          ,
          <string-name>
            <given-names>F.</given-names>
            <surname>Shimojo</surname>
          </string-name>
          ,
          <string-name>
            <given-names>K.</given-names>
            <surname>Tsuruta</surname>
          </string-name>
          , and
          <string-name>
            <given-names>S.</given-names>
            <surname>Saini</surname>
          </string-name>
          , “
          <article-title>Collaborative simulation grid: Multiscale quantum-mechanical/classical atomistic simulations on distributed pc clusters in the us</article-title>
          and japan,” in Supercomputing, ACM/IEEE 2002 Conference, p.
          <fpage>63</fpage>
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          4.
          <string-name>
            <given-names>D.</given-names>
            <surname>Kehagias</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Grivas</surname>
          </string-name>
          , G. Pantziou, and
          <string-name>
            <given-names>M.</given-names>
            <surname>Apostoli</surname>
          </string-name>
          , “
          <article-title>A wildly dynamic gridlike cluster utilizing idle time of common pc,” in Telecommunications in Modern Satellite, Cable</article-title>
          and
          <string-name>
            <given-names>Broadcasting</given-names>
            <surname>Services</surname>
          </string-name>
          ,
          <year>2007</year>
          .
          <source>TELSIKS</source>
          <year>2007</year>
          . 8th International Conference on, pp.
          <fpage>36</fpage>
          -
          <lpage>39</lpage>
          , sept.
          <year>2007</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          5.
          <string-name>
            <given-names>A.</given-names>
            <surname>Wakatani</surname>
          </string-name>
          , “
          <article-title>Parallel vq compression using pnn algorithm for pc grid system</article-title>
          ,
          <source>” Telecommunication Systems</source>
          , vol.
          <volume>37</volume>
          , pp.
          <fpage>127</fpage>
          -
          <lpage>135</lpage>
          ,
          <year>2008</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          6.
          <string-name>
            <given-names>M.</given-names>
            <surname>Maheswaran</surname>
          </string-name>
          ,
          <string-name>
            <given-names>T. D.</given-names>
            <surname>Braun</surname>
          </string-name>
          , and
          <string-name>
            <given-names>H. J.</given-names>
            <surname>Siegel</surname>
          </string-name>
          , “
          <article-title>Heterogeneous distributed computing,” in In Encyclopedia of Electrical</article-title>
          and Electronics Engineering, pp.
          <fpage>679</fpage>
          -
          <lpage>690</lpage>
          , John Wiley,
          <year>1999</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          7.
          <string-name>
            <surname>Y.</surname>
          </string-name>
          <article-title>kwong Kwok and I. Ahmad, “Benchmarking the task graph scheduling algorithms</article-title>
          ,” in
          <source>In Proc. IPPS/SPDP</source>
          , pp.
          <fpage>531</fpage>
          -
          <lpage>537</lpage>
          ,
          <year>1998</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          8.
          <string-name>
            <given-names>J.</given-names>
            <surname>Liou</surname>
          </string-name>
          and
          <string-name>
            <given-names>M.</given-names>
            <surname>Palis</surname>
          </string-name>
          , “
          <article-title>A comparison of general approaches to multiprocessor scheduling,”</article-title>
          <source>Parallel Processing Symposium</source>
          , International, vol.
          <volume>0</volume>
          , p.
          <fpage>152</fpage>
          ,
          <year>1997</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          9.
          <string-name>
            <given-names>J.</given-names>
            <surname>Ullman</surname>
          </string-name>
          , “
          <article-title>Np-complete scheduling problems</article-title>
          ,
          <source>” Journal of Computer and System Sciences</source>
          , vol.
          <volume>10</volume>
          , no.
          <issue>3</issue>
          , pp.
          <fpage>384</fpage>
          -
          <lpage>393</lpage>
          ,
          <year>1975</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          10.
          <string-name>
            <surname>M. R. Garey</surname>
            and
            <given-names>D. S.</given-names>
          </string-name>
          <string-name>
            <surname>Johnson</surname>
          </string-name>
          ,
          <article-title>Computers and Intractability: A Guide to the Theory of NP-Completeness</article-title>
          . New York, NY, USA:
          <string-name>
            <given-names>W. H.</given-names>
            <surname>Freeman</surname>
          </string-name>
          &amp; Co.,
          <year>1979</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          11.
          <string-name>
            <surname>T. D. Braun</surname>
            ,
            <given-names>H. J.</given-names>
          </string-name>
          <string-name>
            <surname>Siegel</surname>
            ,
            <given-names>N.</given-names>
          </string-name>
          <string-name>
            <surname>Beck</surname>
            , L. L. Bo¨lo¨ni,
            <given-names>M.</given-names>
          </string-name>
          <string-name>
            <surname>Maheswaran</surname>
            ,
            <given-names>A. I.</given-names>
          </string-name>
          <string-name>
            <surname>Reuther</surname>
            ,
            <given-names>J. P.</given-names>
          </string-name>
          <string-name>
            <surname>Robertson</surname>
            ,
            <given-names>M. D.</given-names>
          </string-name>
          <string-name>
            <surname>Theys</surname>
            ,
            <given-names>B.</given-names>
          </string-name>
          <string-name>
            <surname>Yao</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          <string-name>
            <surname>Hensgen</surname>
            , and
            <given-names>R. F.</given-names>
          </string-name>
          <string-name>
            <surname>Freund</surname>
          </string-name>
          , “
          <article-title>A comparison of eleven static heuristics for mapping a class of independent tasks onto heterogeneous distributed computing systems</article-title>
          ,
          <source>” Journal of Parallel and Distributed Computing</source>
          , vol.
          <volume>61</volume>
          , no.
          <issue>6</issue>
          , pp.
          <fpage>810</fpage>
          -
          <lpage>837</lpage>
          ,
          <year>2001</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          12. H.
          <string-name>
            <surname>Topcuoglu</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          <string-name>
            <surname>Hariri</surname>
            , and
            <given-names>M.</given-names>
          </string-name>
          <string-name>
            <surname>Wu</surname>
          </string-name>
          , “
          <article-title>Performance-effective and low-complexity task scheduling for heterogeneous computing</article-title>
          ,
          <source>” IEEE Transactions on Parallel and Distributed Systems</source>
          , vol.
          <volume>13</volume>
          , pp.
          <fpage>260</fpage>
          -
          <lpage>274</lpage>
          ,
          <year>2002</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          13.
          <string-name>
            <surname>M. Maheswaran</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          <string-name>
            <surname>Ali</surname>
            ,
            <given-names>H. J.</given-names>
          </string-name>
          <string-name>
            <surname>Siegel</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          <string-name>
            <surname>Hensgen</surname>
            , and
            <given-names>R. F.</given-names>
          </string-name>
          <string-name>
            <surname>Freund</surname>
          </string-name>
          , “
          <article-title>Dynamic matching and scheduling of a class of independent tasks onto heterogeneous computing systems</article-title>
          ,
          <source>” Heterogeneous Computing Workshop</source>
          , vol.
          <volume>0</volume>
          , p.
          <fpage>30</fpage>
          ,
          <year>1999</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          14.
          <string-name>
            <given-names>M.</given-names>
            <surname>Iverson</surname>
          </string-name>
          and
          <string-name>
            <given-names>F.</given-names>
            <surname>Ozguner</surname>
          </string-name>
          , “
          <article-title>Dynamic, competitive scheduling of multiple dags in a distributed heterogeneous environment</article-title>
          ,
          <source>” Heterogeneous Computing Workshop</source>
          , vol.
          <volume>0</volume>
          , p.
          <fpage>70</fpage>
          ,
          <year>1998</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref15">
        <mixed-citation>
          15.
          <string-name>
            <given-names>M. A.</given-names>
            <surname>Iverson</surname>
          </string-name>
          and
          <string-name>
            <surname>F.</surname>
          </string-name>
          <article-title>O¨zgu¨ner, “Hierarchical, competitive scheduling of multiple dags in a dynamic heterogeneous environment,” Distributed Systems Engineering</article-title>
          , vol.
          <volume>6</volume>
          , no.
          <issue>3</issue>
          , p.
          <fpage>112</fpage>
          ,
          <year>1999</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref16">
        <mixed-citation>
          16.
          <string-name>
            <given-names>X.</given-names>
            <surname>Qin</surname>
          </string-name>
          and
          <string-name>
            <given-names>H.</given-names>
            <surname>Jiang</surname>
          </string-name>
          , “
          <article-title>Dynamic, reliability-driven scheduling of parallel real-time jobs in heterogeneous systems</article-title>
          ,” Parallel Processing, International Conference on, vol.
          <volume>0</volume>
          , p.
          <fpage>0113</fpage>
          ,
          <year>2001</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref17">
        <mixed-citation>
          17.
          <string-name>
            <given-names>O.</given-names>
            <surname>Votava</surname>
          </string-name>
          ,
          <string-name>
            <given-names>P.</given-names>
            <surname>Macejko</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Kubr</surname>
          </string-name>
          , and
          <string-name>
            <surname>J. Janeˇcek</surname>
          </string-name>
          , “
          <article-title>Dynamic Local Scheduling of Multiple DAGs in a Distributed Heterogeneous Systems</article-title>
          ,” in
          <source>Proceedings of the 2011 International Conference on Telecommunication Systems Management</source>
          , (Dallas, TX), pp.
          <fpage>171</fpage>
          -
          <lpage>178</lpage>
          , American Telecommunications Systems Management Association Inc.,
          <year>2011</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref18">
        <mixed-citation>
          18.
          <string-name>
            <surname>J. Janeˇcek</surname>
          </string-name>
          , P. Macejko, and T. M. G. Hagras, “
          <article-title>Task scheduling for clustered heterogeneous systems</article-title>
          ,” in IASTED International Conference - Parallel and
          <string-name>
            <given-names>Distributed</given-names>
            <surname>Computing</surname>
          </string-name>
          and
          <string-name>
            <surname>Networks (PDCN 2009) (M. Hamza</surname>
          </string-name>
          , ed.), pp.
          <fpage>115</fpage>
          -
          <lpage>120</lpage>
          ,
          <year>February 2009</year>
          .
          <source>ISBN: 978-0-88986-783-3</source>
          ,
          <string-name>
            <surname>ISBN</surname>
          </string-name>
          (CD):
          <fpage>978</fpage>
          -0-
          <fpage>88986</fpage>
          -784-0.
        </mixed-citation>
      </ref>
      <ref id="ref19">
        <mixed-citation>
          19. H.
          <string-name>
            <surname>Topcuoglu</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          <string-name>
            <surname>Hariri</surname>
          </string-name>
          , and M.
          <string-name>
            <surname>-Y. Wu</surname>
          </string-name>
          , “
          <article-title>Task scheduling algorithms for heterogeneous processors</article-title>
          ,” in Heterogeneous Computing Workshop,
          <year>1999</year>
          .
          <article-title>(HCW '99) Proceedings</article-title>
          . Eighth, pp.
          <fpage>3</fpage>
          -
          <lpage>14</lpage>
          ,
          <year>1999</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref20">
        <mixed-citation>
          20.
          <string-name>
            <given-names>H.</given-names>
            <surname>Zhao</surname>
          </string-name>
          and
          <string-name>
            <given-names>R.</given-names>
            <surname>Sakellariou</surname>
          </string-name>
          , “
          <article-title>Scheduling multiple dags onto heterogeneous systems,” Parallel and Distributed Processing Symposium</article-title>
          , International,
          <year>2006</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref21">
        <mixed-citation>
          21.
          <string-name>
            <given-names>J.</given-names>
            <surname>Barbosa</surname>
          </string-name>
          and
          <string-name>
            <given-names>B.</given-names>
            <surname>Moreira</surname>
          </string-name>
          , “
          <article-title>Dynamic job scheduling on heterogeneous clusters,” in Parallel</article-title>
          and Distributed Computing,
          <year>2009</year>
          . ISPDC '09. Eighth International Symposium on, pp.
          <fpage>3</fpage>
          -
          <issue>10</issue>
          ,
          <fpage>302009</fpage>
          -july4
          <year>2009</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref22">
        <mixed-citation>
          22. R. de Mello,
          <string-name>
            <given-names>J. Andrade</given-names>
            <surname>Filho</surname>
          </string-name>
          ,
          <string-name>
            <given-names>L.</given-names>
            <surname>Senger</surname>
          </string-name>
          , and
          <string-name>
            <given-names>L.</given-names>
            <surname>Yang</surname>
          </string-name>
          , “
          <article-title>Grid job scheduling using route with genetic algorithm support,” Telecommunication Systems</article-title>
          , vol.
          <volume>38</volume>
          , pp.
          <fpage>147</fpage>
          -
          <lpage>160</lpage>
          ,
          <year>2008</year>
          .
          <volume>10</volume>
          .1007/s11235-008-9101-5.
        </mixed-citation>
      </ref>
      <ref id="ref23">
        <mixed-citation>
          23.
          <string-name>
            <given-names>Y.</given-names>
            <surname>Kitatsuji</surname>
          </string-name>
          ,
          <string-name>
            <given-names>K.</given-names>
            <surname>Yamazaki</surname>
          </string-name>
          ,
          <string-name>
            <given-names>H.</given-names>
            <surname>Koide</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Tsuru</surname>
          </string-name>
          , and
          <string-name>
            <given-names>Y.</given-names>
            <surname>Oie</surname>
          </string-name>
          , “
          <article-title>Influence of network characteristics on application performance in a grid environment</article-title>
          ,
          <source>” Telecommunication Systems</source>
          , vol.
          <volume>30</volume>
          , pp.
          <fpage>99</fpage>
          -
          <lpage>121</lpage>
          ,
          <year>2005</year>
          .
          <volume>10</volume>
          .1007/s11235-005-4320-5.
        </mixed-citation>
      </ref>
      <ref id="ref24">
        <mixed-citation>
          24. A.
          <string-name>
            <surname>Varga</surname>
          </string-name>
          et al., “
          <article-title>The omnet++ discrete event simulation system,” in Proceedings of the European simulation multiconference (ESM'</article-title>
          <year>2001</year>
          ), vol.
          <volume>9</volume>
          , p.
          <volume>65</volume>
          ,
          <issue>sn</issue>
          ,
          <year>2001</year>
          .
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>