Scheduling Divisible Loads in the Dynamic ... - CiteSeerX

1 downloads 138 Views 216KB Size Report
Algorithms of resource location and job scheduling are discussed. .... that overlaps communication and computation, virtual cut through or store and forward, .... information center to store them all. .... node, we call it the atom reduction step.
Scheduling Divisible Loads in the Dynamic Heterogeneous Grid Environment Zhu Tao, Wu Yongwei, Yang Guangwen Department of Computer Science and Technology, Tsinghua University, Beijing, 100084, P.R.China

Abstract According to the special features of the dynamic heterogeneous grid environment, a loose-coupled and scalable resource model is described by a hybrid multi-level tree reflecting actual networks for organizing distributed resources. The resource model is maintained in a distributed way, making it loose-coupled and scalable, which is practical for many grid applications, especially for sequence analysis in Bioinformatics. Algorithms of resource location and job scheduling are discussed. The divisible load theory (DLT) is introduced to grid computing through applying divisible load scheduling on the model, an algorithm called recursively equivalence is presented to overcome difficulties in developing DLT analysis on the dynamic heterogeneous tree. Experiment result is presented to evaluate the model. 1 Introduction A divisible load means an application that can be divided into parts of arbitrary size amongst links and processors, such loads, also known as divisible tasks, can be processed in parallel and independently of each other [3]. The divisible load model is a good abstract description of many real-world applications in scientific computing. The nature of independency between divided parts makes divisible loads amenable for parallel and distributed computing. As an emerging focus of distributed computing on dynamic heterogeneous networks, grid computing aims at building a coordinated environment for resource sharing, including computational and data resources. In this environment, middwares can be developed to provide uniform services for users. Job scheduling in grid computing becomes one of the most important issue considered by researchers, whose goal is to achieve a load balance in this dynamic heterogeneous environment for large-scale high-performance distributed computing. The divisible load theory has great advantages in modeling grid applications and developing efficient scheduling strategies, while it also

confronts challenges. So far, researches on divisible load theory mostly focus on theoretical algorithms, or applications under ideal platforms and network topologies. Even several recent works on scheduling divisible loads in Gird computing shed little light on the radical feature of Grid: a large-scale dynamic, heterogeneous, loose-coupled environment. This makes it necessary to carry on further work to better join divisible load theory and Grid computing. In this paper we propose a universal resource model described by a hybrid multi-level tree for grid computing based on dynamic and heterogeneous networks. Then a method of reducing the complex multi-level tree to a single level tree using divisible load theory is presented, so that we can develop divisible load scheduling based on existing techniques. Issues including resource location, analysis on model parameters such as processors’ computing abilities, communication speed and their relationship with loads are also discussed. Finally, we take experiments, evaluate the result and discuss it. Through all these efforts, we introduce a way to apply divisible load theory on grid computing, which makes great sense on using resources more efficiently through load balancing. The rest of this paper is organized as follows: Section 2 gives a general introduction of divisible load theory, issues of applying it in grid computing and related works; Section 3 describes our resource model in details; Then we develop divisible load scheduling based upon the resource model in section 4 and evaluate experimental results in section 5; Finally we discuss and conclude in section 6. 2 Background and related work 2.1 Divisible Load Theory The divisible task model abstractly describes a large class of real-world applications in various realms whose input data can be divided into independent parts, including bioinformatics computation dealing with gene sequences, searching for a pattern in a text, graphical, audio, etc. file, processing big measurement data files [3], image and signal processing [5], database searching [6] and so on. There are no precedence relations between the independent divided parts, and so they can be distributed to computational nodes and processed in any order without communication between each other. Not only such data parallel applications as above fit the model, researchers can also model a large number of small independent tasks as a divisible load[2] . Divisible load scheduling theory (known as DLT) uses a linear mathematical model to analyze scheduling models for divisible tasks. It takes into account computation abilities of distributed resources and communication latency as model parameters, uses a continuous mathematical formulation to solve and make a decision by which the load is divided and assigned to compute resources, with the goal of minimizing application cost.

Theoretically, the DLT model presents optimal scheduling for divisible load problems. On the practical side, the model provides a simple yet realistic framework to study the mapping on independent tasks on heterogeneous compute resources. The constructive parameters of the actual model, such as granularity of tasks, can be determined by users, thereby providing a lot of flexibility in the implementation tradeoffs. Since the original work on this subject in 1988 by Cheng and Robertazzi[4], a great many efforts have been made on the scheduling and performance prediction of divisible loads. The first proposed DLT algorithms were single-round algorithms, which assign each compute resource exactly one chunk of the load. These algorithms were studied for many network topologies, including chain[4], star[3], bus[7], tree[8], hypercube[9], mesh[10], etc.. Then multi-round algorithms are introduced in [11]. People also develop research on communication type and situations in divisible load scheduling: with or without front end that overlaps communication and computation, virtual cut through or store and forward, block or non-block, having or not having communication start time. While most of the works focus on homogeneous clusters or LAN environments before, [2] considers heterogeneous platforms and [12] works on algorithms in heterogeneous networks. However, all these works restrict to theoretical analysis or fixed network topologies (even in a heterogeneous environment, the topology of network and compute resources are given before scheduling) and so don’t comply with the features of Grid computing. 2.2 Grid Computing Grid computing introduces a more flexible and scalable new way to provide more powerful computation abilities than supercomputers and traditional clusters. By contrast, it has its special features: 1) Dynamicity: In the dynamic grid environment, the topology of resources is not determined but generated by organizing framework of available computing nodes and services needed by users; Also the available sets of resources and services on them are time-varying, even the performance of processors changes over time. 2) Heterogeneity: The networks and resources is heterogeneous, that means different network bandwidth and reliability, various platforms, operating systems and computing abilities. 3) Loose-coupled: The resources are not owned or administrated by a single entity. The virtual organizations participating in the Grid environment are autonomous, providing services in certain forms. The real and specific problem that underlies the Grid concept is coordinated resources sharing and problem solving in dynamic, multi-institutional virtual organizations[1]. Since the concept of Grid was proposed, researches have been continuously making efforts on constructing the coordinated Grid environment for resource sharing. One of the most important works is the Globus project[14,15]. The Globus Toolkit(GT) integrates services and libraries for resource monitoring, discovery,

and management, plus security and file management, which let users construct Grid mid-ware according to the Open Grid Services Architecture (OGSA) specifications. The effective use of resources in Grid environment requires new efficient scheduling approaches. Traditional time-balancing or load-balancing models in heterogeneous environments typically assume that resources performance is constant or slowly changing. Some scheduling systems, although supporting dynamic workload balancing through migration, are complex to implement and not feasible for all applications. Globus develops a conservative scheduling policy which is a time-balancing strategy based on the prediction of the next interval of time[16]. While in Grid environment, Resources may have to deal with multi jobs at a time, which makes it not accurate to predict the load situation based on a single job, and like Most traditional load balancing technologies used in Grid computing, the algorithm treats a job as a unit to be scheduled, making it inefficient for the large class of divisible jobs. There are also some attempts on applying DLT on Grid computing. Dantong Yu and T.G.Robertazzi[17] discuss an application of DLT on Grid Computing. Another similar work is [18], it develops several DLT scheduling algorithms on a Grid deploying middware named APST-DV. A new kind of approaches considering multi sources are developed recently[19,20,21], but It is usually hard to handle the complex source-sink relations between processing nodes. Yet all these works suppose that the topology of the Grid environment is determined before develop scheduling and won’t change or only change little. In our research, we focus on the special features of Grid computing and develop more flexible and efficient load balancing scheduling using divisible load theory. 3 Resource Model To organize and coordinate distributed resources participating in the grid environment, we need to take advantage of a resource model, based on which uniform and scalable mechanisms for describing, locating and allocating computational and communication resources can be developed. The first contribution of this paper is that we propose a uniform grid resource model addressing the concerns of scalability, heterogeneity and dynamicity in grid computing. 3.1 Model Description To reflect the topology of real networks around us, our model organizes resources with a structure of a hybrid hierarchical tree. Each node of the tree represents a virtual organization regarded as a resource participating in the Grid environment (fig.1)

Fig1. Generate a resource tree from actual network resources.

As shown in Fig1, the left side is an example of actual resources (workstation W, server S, PC A, B and C in a LAN and cluster L) on network participating into a Grid environment. The right side is a resource tree modeling the resources: A is a site with a public IP address in the LAN. Similarly, L0 is the front end of the cluster L having a public IP address while L1 to Ln are internal computing nodes. So we can organize all resources in the Grid system with a hierarchical tree, but not the only determined one, depending on the formulation process. Some typical network topologies discussed in DLT scheduling, such as chain, bus, star, etc., can be regarded as special instances of our model. The resource model can be described in THREE major features which will be discussed below: 1) distributed maintaining (local resource management); 2) one-level uniform communication protocol; 3) message handling mechanism. (Fig2)

Fig2. Architecture of a Resource node

We maintain the tree in a distributed manner, which means that every node maintains local structure information and resource information locally, without a central information center to store them all. For structure information, each node only stores addresses of nodes directly connected with it: parent and immediate children (specially, root only children and leaf nodes only parent). Local resource information kept by nodes consists of service description and node description. Service description contains

information of services provided by the resource node, and node description describes the computational ability, including CPU frequency, memory, etc. Another feature of our model is the one-level uniform communication protocol used for a node to communicate with its directly connected nodes (parent and children nodes). One-level means that communication only happens between two directly connected nodes, without interim nodes to pass messages. And all communication use an open uniform protocol based on asynchronous request-response message passing, a parent node send a request message to its child and receive a response from it. The format of a message varies according to the message type, and relies on different types of network protocols such as TCP and UDP. Corresponding to the message passing protocol, nodes need to implement a functional module to handle these messages. The major function of this module is to receive request messages from parent, analyze the messages, invoke related functions according to the message type and carry on requested operations using information contained in the messages, finally return back response messages. And usually it is required for this module to generate request messages and broadcast them to its children during the handling procedure. Taking advantage of this model, we can organize resources in a loose-coupled and light-weighted way suit for Grid Computing. We treat every resource node as an independent autonomous virtual organization and aggregate them in a tree through a uniform communication protocol. So it is easy to guarantee the security of nodes, and because the protocol is open and compact, the resource tree is platform independent and highly scalable. In a dynamic Grid environment, nodes may join or leave frequently, and nodes’ status may also change dynamically. When a new resource provider joins our Grid environment, it only needs to encapsulate the provided services with a message handling mechanism complying with our uniform communication protocol, and register to one available node in our resource model. When a node leaves, it falls into two conditions: leaf or non-leaf nodes, if leaf, directly deregistering to its parent is enough; if non-leaf, various mechanisms can be developed to adjust the tree, such as introducing children nodes to its parent. The node management module (fig2) can also employ different policies to update node status, which is not the point of our paper. In virtue of our hierarchical tree model maintained in a distributed manner, dynamic changes only lead to local update in relatively low cost. Based on the distributed maintained resource model, Grid middware can be built to coordinate the resources and provide services for users, including functions of resource location, job scheduling and allocation, system monitor and so on. Normally we locate the Grid system on the root node of our resource model for centralized management. Also we can install the system on any other node of the resource tree and use this node and its children nodes as Grid resources, in this case, we actually treat the node as the root of a selected subtree. Two important function of the Grid system in handling job

requests are resource location and loads allocation. 3.2 Resource Location Before job scheduling, the resource location procedure is designed to select a subtree whose nodes matching the job requests from the original tree. It typically includes two steps: inquiry and reorganization. Inquiry means we first search the total tree to check each node if it matches the job request. Then all selected resource nodes are reorganized to a new tree. At the beginning of resource inquiry, an inquiry message is generated at the root node to ask a node if its computation ability satisfy the job requests, and then forwarded to its children. When a node receives the message, it checks its resource information and node information, compare them with the job requests described in the message to see if it is capable of the job, and finally it reports a reply message back to its parent from which it receives the message. So through our one-level uniform communication protocol, the total tree can be scanned and a set of usable nodes can be chosen.

Fig3 Example of Resource Location

However, the selected usable nodes may not be a connected tree (Fig.3). We need to reorganize them to a tree for loads allocation. The algorithm of reorganization is described in Fig4. A mechanism of introducing usable children to parent when a node is unusable is also developed. Taking the tree in Fig3 as an example, from the original tree (a), we can get the usable nodes which are not a connected tree. Children nodes P4 , P10 , P11, P7 , P8 reports USABLE to their parents. For non-leaf nodes, P2 is usable, which keeps usable children P9 , P12 and drops the unusable child P6 ; P1 , P3 , P5 are unusable, in which P3 reports UNUSABLE to its parent because all its children are unusable, P1 and P5 have usable children and try to introduce them to parents, as a result, P5 successfully introduces P10 and P11 to P1 , P1 successfully introduces to P0 , but fails to introduce P10 and P11 to P0 , so it reports usable to P0 and is kept in the new tree as a medium to connect its children with its parent. Root node P0 drops unusable node P3 and we get the reorganized new tree (b). Note that because our tree is loose-coupled, when a child is dropped, the branch is cut from the tree.

Fig 4 algorithm of reorganizing a tree

Supposing our resource tree has N nodes, M of which are leaf nodes, the resource location procedure should get 2(N-1) messages passed between nodes, N times of local resource checking and N-M times of introduction at most. Although this cost is relatively low in contrast with the computational cost of a job, when the job requests are frequent, it may also cause heavy communication loads. To reduce the cost, we can maintain a cache in every node containing static records of children’s information and update it by different strategies, which will not be discussed in details in this paper. 3.3 Loads Allocation Given the selected resource subtree, we need to employ a scheduling mechanism to allocate computational tasks to it. Yet the hybrid multi-level tree is too complex to develop a algorithm to balance loads between nodes when allocating. Also because the actual topology of the dynamic tree is determined by actual job requests, it is not practical to apply traditional static scheduling algorithms on trees. Here we introduce a method called Recursively Equivalence to reduce the multi-level tree to a single level tree, which is easy to analyze. The main idea of Recursively Equivalence is to replace a subtree with a single node with equivalent computation ability. In Fig 5, P’i refers to the virtual node equivalent in computation ability with the subtree whose root is Pi. Consider the tree in the middle, the

subtrees whose roots are children of Pi are all replaced with virtual equivalent nodes. So the key part of our method is how to transform a single level tree to a equivalent virtual node, we call it the atom reduction step. By recursively repeating this step from bottom to up, we can reduce the tree into a single level tree which is easy for loads allocation using existing technologies. For divisible loads, we will discuss the implementation of this step using divisible load theory in the next section.

Fig 5 procedure of recursively equivalence

After reduction, we allocate loads from the root node to its children (equivalent virtual nodes) in the single level tree, and then each child receives its loads part, transforms back to the single level tree it turned from, and allocates the loads to its children. So by repeatedly expanding the tree from up to bottom, we allocate loads to every node. In every allocation, the parent can keep a fraction of loads to compute if it is usable for the job (satisfying the job requests). 4 Analysis of Divisible Load Scheduling 4.1 Resource Model Analysis Before job scheduling, the resource location procedure will select a subtree matching the job requests, and get the real-time information of its nodes (cpu idle percentage, communication latency, etc.). And based on the selected resources, we try to find an optimal solution of dividing the job into parts and allocating them to all nodes. From the root, each node keeps a certain part of the job (if usable) and distribute the left to its children according to a certain partition. Obviously, the optimal solution is obtained by forcing the processors over a network to all stop processing simultaneously. Because the solution could be improved by transferring load if some processors were idle while others are still busy [13]. A hybrid heterogeneous L-level tree with N nodes is considered for divisible load scheduling. Here we introduce the nomenclature used throughout this paper: Pi : the ith processor in the tree. Each node is labeled from up to down and left to right. Ai : A constant inversely proportional to the computation speed of processing Pi . Sij : the startup time needed to initiate the communication link ij. Cij : A constant inversely proportional to the data transmission rate of link ij (the link

that connects processor Pi and processor Pj). i : the fraction of the entire processing load that is assigned to processor Pi . Icp : Computation intensity constant. A load unit is finished computation in Ai Icp seconds in processor Pi . Icm : Communication intensity constant. A load unit is transmitted in Cij Icm seconds over link ij . In these notations, Ai represents the computational ability of a node, Cij ,Sij represent communication situation and Icp, Icm represent load features. Using these parameters, we develop mathematical analysis of divisible load scheduling to solve scheduling issues mentioned above. 4.2 DLT Analysis on a single level tree In the Grid environment, It is assumed that: 1)only one communication link can be used at a time, so we need to allocate loads sequentially; 2) nodes can compute and communicate simultaneously. First we analyze the procedure of replacing a single level subtree with an equivalent virtual node.(fig 6).

Fig 6 loads allocation on a single level tree

As shown in Fig 6, At the beginning, all loads resides in root P0 . From the resource location procedure, we learn that P0 may not be able to compute tasks. So we only consider the case that P0 only dispatches loads to children without keeping loads to compute (because if P0 is able to compute, we can let it not keep loads by adding a child having the same computation ability as it and letting the transmission latency be zero). P0 sends loads to its children sequentially, every child Pi (i = 1, 2, .. m)starts computation as soon as it finishes receiving its part ( i) of loads. The goal of our analysis is to find the optimum solution of vector ( 1 , 2, … , m ) that makes all nodes finish computation at the same time. Suppose initially there are a volume V in P0 , let the time used for P0 to send loads to child Pi be Tcmi (i = 1, 2, …, m) , Tcmi = S0 i + iV C0 i Icm (1) cp And let the time used for node Pi to compute its part ( i) of loads be T i (i = 1, 2, …, m) , Tcpi = iV Ai Icp (2) From fig4, we can get

Tcpi = Tcmi+1 + Tcpi+1 , i = 1, 2, …, m-1 From (1), (2), (3), we get iV Ai Icp = S0 i+1 + i+1V (C0 i+1 Icm + Ai+1 Icp ), i = 1, 2, …, m-1

(3) (4)

m

also we know,

(5)

αi = 1 i =0

Using (4) and (5), we can form a m dimension linear equation set to solve the vector ( 1 , 2, … , m ). The equation set can be solved in O(m) time by a reduction of i to a linear function of m : i = ki m + li (i = 1, 2, …, m), where km = 1, lm = 0 (6) ki = (

C 0i +1 I cm Ai +1 S C I A + )k i +1 , l i = 0i +1 + ( 0i +1 cm + i +1 )l i +1 Ai I cp Ai AiVI cp Ai I cp Ai m

α m = (1 −

m

li ) ( i =1

(7)

ki )

(8)

i =1

What can be discovered is that the solution has relationship with the sequence of children nodes. To find an optimum sequence, we ideally need to make m! times of solving m dimension linear equation sets, making it a NP problem. However, there are some approximately optimal methods can be used to improve the solution, such as let the nodes with high computation abilities start computation as early as possible. It is possible that no feasible solution can be find, it means that loads can be processed by less than m processors in a shorter time. In this case, a thorough consideration of all subsets of processors is a NP problem. Yet we can get an feasible and approximately optimal solution by a binary search over m in time O(mlogm): suppose n children nodes are used(the choosing of these nodes can follow different strategies), n in interval [a, b] where a = 0, b = m initially, consider the solution when n = (a+b)/2, if feasible, search in interval [(a+b)/2, b]; else in interval [a, (a+b)/2]. By this, we can find the maximum number of usable nodes and get the approximately optimal allocation of loads. 4.3 Recursively Equivalence

According to our method of recursively equivalence, from bottom to up, we replace every single-level subtree with an equivalent virtual node so as to finally reduce the total tree to a single level tree. As shown in fig5, Suppose the computation speed of virtual node P’j is A’j , and let ’j denotes the loads fraction allocated to virtual node P’j (obviously, ’j is the loads fraction should be allocated to subtree(Pj)), we can treat the equivalent subtree as a single level tree, and get the solution of ( ’j , ’j+1, … , ’j+m) using analysis similar as 4.2. However, in equations (7), the total volume of loads V (here means loads allocated to

subtree(Pi)) can’t be known until the loads allocation is determined. Here we simplify the equations to avoid it based on another assumption of Grid environment: the start time needed by a node to communicate is much smaller than the computation time of loads allocated to it. So the term

S 0i +1 in (7) is tiny enough to be neglected, and the new AiVI cp

equations are: i = ki m km = 1, ki = (

C 0i +1 I cm Ai +1 + )k i +1 Ai I cp Ai

i = 1, 2, …, m

(9)

i = 1, 2, …, m-1

(10)

m

αm = 1 (

(11)

ki ) i =1

Using (9), (10), (11) we can get the solution vector ( ’j , ’j+1, … , ’j+m). And from fig4 we can see that the total time needed to compute the loads T = Tcm1 + Tcp1 , seen as a equivalent virtual node, T = V A’i Icp , so we have Tcm1 + Tcp1 = V A’i Icp , from (1) and (2), we get A’i = (α 1C 01 I cm ) I cp + α 1 A1 .Then we can replace the subtree with a virtual node whose computing ability is A’i . Finally, for every non-leaf node Pi , we have the vector ( ’j , ’j+1, … , ’j+m), which determines the loads fraction kept by Pi and the fractions sent to its children. Then we can allocate loads to all nodes from up to bottom according to the solutions. Also we can use the actual loads allocated to a node to verify the assumption above, and make necessary adjusting. Specially, for computation intensive loads, the factory I cm I cp approaches zero, we can get α i = ( 1 ) Ai

m i =1

1

m

Ai

, Total computation time T = (VI cp ) i =1

1

Ai

.

The whole scheduling can be divided into 2 procedure: the bottom to up reduction and the up to bottom allocation. Suppose the tree has N nodes in total, with Q leaf nodes. The first procedure need N-Q times of finding equivalent nodes, each with a time complexity of O(m) (m is the nodes number of the single-level subtree), so this procedure’s time complexity is O(N). In the second procedure, only N-Q times of dividing loads and allocating them are needed. So the total time complexity is O(N). 5 Experiments Evaluation

We make simulation experiments to verify our analysis based on a dynamic multi-level hybrid tree model. This tree represents a reorganized tree after the procedure

of resource location, then we use an application of searching for a pattern in a text file and a bioinformatics software called Phrap which are typical divisible applications to test our analysis on divisible loads allocation. We employ 4 Windows PC, 2 Linux server and 15 nodes in a homogeneous IA64 cluster to simulate the heterogeneous tree (the cluster is divided into different subtrees during simulation), 18 of which are usable for the application. Various bandwidth of links are supposed to simulate different network situations, also, we have some other applications running on the nodes to make sure their computation abilities are different and time-varying. Then we use loads in different sizes to test the allocation. The actual topology of the tree is changed in different tests. To get the current computation ability of a node, we send a small fraction (0.1%) of loads to a node Pi, get the time cost Ts, and get Ai Icp = Ts / Vi , Vi is the size of the loads. There are THREE important values we are concerned with: 1. the relative error Ea of the average time cost of all usable nodes (as Fig 6, starts from the beginning of loads allocation, to the end of computation) to the ideal time cost; 2. the relative error Em of the maximum time cost to the ideal time cost (actually, the response time of a job is determined by the last completed part of loads); 3 the fraction Vs of the mean square variance of all usable nodes’ time costs to the average value, which indicates the balance degree of loads. We test 7 different sizes of loads and get these values shown below:

Fig 7 experiment results

From the Results, we can see in the dynamic environment, our approach achieves good balance of loads and greatly improves the computation efficiency. Differences between the two graph are mainly caused by the different features of the two applications. Text Search is a good linear application with fine granularity, so the error is relatively small and the result is very near to the ideal value; While the condition of Phrap is more complex. Yet the results are acceptable and successfully verify our analysis. Also, we notice that the fraction used to probe the computation ability of a node has influence on the result of load allocation (Table 1). Generally, the fraction is bigger, the result is more accurate, but the time cost is also larger. We can develop algorithms integrate probing and divisible load scheduling by let some loads be allocated equally for computing and probing, then use the probed computation abilities of nodes to allocate other loads through DLT scheduling. For large-scale applications with large time costs (e.g. several days), the performance of nodes may change a lot from the probed situation, we can divide them into many smaller applications and schedule them separately.

Probe Loads(MB)

Ea Em Vs

0.0025 54.5% 32.5% 34.5%

0.01 16.7% 30.5% 10.72%

0.05 11.1% 32.3% 9.46%

0.1 8.1% 24.4% 10.1%

0.2 8.8% 22.5% 8.6%

Table 1. values when testing 10MB Phrap loads using different size of Probe loads

6 Conclusion

Taking advantage of our resource model, we can organize distributed heterogeneous resources in a hybrid multi-level tree reflecting actual networks. Maintained in a distributed manner, our model is loose-coupled and scalable, which fit the dynamic grid environment. Based on the resource model, we apply the divisible load theory and develop the recursively equivalence algorithm to schedule divisible loads. Finally, the experiments verify our analysis and make our work a successful approach to join divisible load theory and grid computing, which will make great sense on load balance in the grid environment. Future work includes further improvement of the algorithm and the implementation of other function modules such as fault tolerant. Reference

[1] Ian Foster, Carl Kesselman, Steven Tuecke, “The Anatomy of the Grid: Enabling Scalable Virtual Organizations”. High-Performance Computing Applications, vol. 15, no. 3, 2001, pp. 200-222 [2] Beaumont, O., Carter, L., Ferrante, J., Legrand A. and Robert, Y.,“Bandwidth-Centric Allocation of Independent Tasks on Heterogeneous Platforms”, Proceedings of the International Parallel and Distributed Processing Symposium (IPDPS’02), June 2002. [3] Introduction to Divisible Tasks http://www.cs.put.poznan.pl [4] Cheng, Y.-C., Robertazzi, T.G., “Distributed computation with communication delay”, IEEE Transactions on Aerospace and Electronic Systems 24, 1988, 700-712. [5] Bharadwaj, V., Ghose, D., Mani, V., Robertazzi, T., “Scheduling Divisible Loads in Parallel and Distributed Systems”, IEEE Computer Society Press, Los Alamitos CA, 1996. [6] M. Drozdowski. “Selected problems of scheduling tasks in multiprocessor computing systems”. PhD thesis, Instytut Informatyki Politechnika Poznanska, Poznan, 1997. [7] S. Bataineh and T.G. Robertazzi, “Distributed Computation for a Bus Network with Communication Delays,” Proc. 1991 Conf. Information Sciences and Systems, pp. 709-714, Johns Hopkins Univ.,Baltimore, Md., Mar. 1991. [8] Y.C. Cheng and T.G. Robertazzi, “Distributed Computation for a Tree Network with Communication Delays,” IEEE Trans. Aerospace and Electronic Systems, vol. 26, no. 3, pp. 511-516, May 1990.

[9] J. Blazewicz and M. Drozdowski, “Scheduling Divisible Jobs on Hypercubes,” Parallel Computing, vol. 21, pp. 1,945-1,956, 1995. [10]J. Blazewicz and M. Drozdowski, “The Performance Limits of a Two-Dimensional Network of Load-Sharing Processors,” Foundations of Computing and Decision Sciences, vol. 21, no. 1, pp. 3-15, 1996. [11] Y. Yang and H. Casanova. Multi-round algorithm for scheduling divisible workload applications: analysis and experimental evaluation. Technical Report CS2002-0721, Dept. of Computer Science and Engineering, University of California, San Diego, 2002. [12] O.Beaumont, A.Legrand and Y.Robert. “Optimal algorithms for scheduling divisible workloads on heterogeneous systems”, Proceedings of the International Parallel and Distributed Processing Symposium (IPDPS’03) [13] J. Sohn and T.G. Robertazzi. “Optimal divisible load sharing for bus networks”, IEEE Transactions on Aerospace and Electronic Systems, 32, 1996, 34-40. [14] Globus project. http://www.globus.org [15] I. Foster and C. Kesselman. Globus. “A metacomputing infrastructure toolkit”, International Journal of Supercomputer Applications, 11(2):115-128, 1997. [16] Lingyun Yang, Jennifer M. Schopf, and Ian Foster. “Conservative scheduling: Using predicted variance to improve scheduling decisions in dynamic environments”, In Proceedings of SuperComputing 2003, pages 1–16, 2003. [17] Yu, D., and Robertazzi T.G., “Divisible Load Scheduling for Grid Computing”, 15th IASTED International Conference Parallel and Distributed Computing and Systems, Marina del Rey, CA, USA, 2003. [18] K. van der Raadt, Y. Yang, and H. Casanova. “APST-DV: Divisible Load Scheduling and Deployment on the Grid”. Technical Report CS2004-0785, Dept. of Computer Science and Engineering, University of California, San Diego, 2004. [19] H.M. Wong, D. Yu, V. Bharadwaj, T.G. Robertazzi., “Data Intensive Grid Scheduling: Multiple Sources with Capacity Constraints”, 15th IASTED International Conference on Parallel and Distributed Computing and Systems, Los Angeles, 2003 [20] M.A. Moges and T.G. Robertazzi. “Grid scheduling divisible loads from multiple sources via linear programming", IASTED International Conference on Parallel and Distributed Computing and Systems (PDCS 2004), Cambridge, MA, 2004. [21] Sivakumar Viswanathan, Bharadwaj Veeravalli, Dantong Yu, Thomas G. Robertazzi. “Design and Analysis of a Dynamic Scheduling Strategy with Resource Estimation for Large-Scale Grid Systems”, Fifth IEEE/ACM International Workshop on Grid computing (GRID'04) pp. 163-170 [22] K. Czajkowski, I. Foster, N. Karonis, C. Kesselman, S. Martin, W. Smith, S. Tuecke. A Resource Management Architecture for Metacomputing Systems. Proc. IPPS/SPDP '98 Workshop on Job Scheduling Strategies for Parallel Processing, pg. 62-82, 1998. [23] Ko, K., Robertazzi, T. G., “Equal allocation scheduling for data intensive applications”. IEEE Transactions on Aerospace and Electronic Systems 40 (2), 695–705. Apr. 2004.