A Complex Network-Based Approach for Job Scheduling ... - CiteSeerX

5 downloads 12965 Views 611KB Size Report
represent grid process elements, which are generalized as computers. ... as parallel machines and clusters, demonstrate the need of a technology able ... sides that, the scheduling has to deal with specialized applications which have different.
A Complex Network-Based Approach for Job Scheduling in Grid Environments Renato P. Ishii1 , Rodrigo F. de Mello2 , and Laurence T. Yang3 1

Federal University of Mato Grosso do Sul – Department of Computer and Statistics Campo Grande, MS, Brazil [email protected] 2 University of S˜ao Paulo – Institute of Mathematics and Computer Sciences Department of Computer Science – S˜ao Carlos, SP, Brazil [email protected] 3 St. Francis Xavier University – Antigonish, NS, Canada [email protected]

Abstract. Many optimization techniques have been adopted for efficient job scheduling in grid computing, such as: genetic algorithms, simulated annealing and stochastic methods. Such techniques present common problems related to the use of inaccurate and out-of-date information, which degrade the global system performance. Besides that, they also do not properly model a grid environment. In order to adequately model a real grid environments and approach the scheduling using updated information, this paper uses complex network models and the simulated annealing optimization technique. The complex network concepts are used to better model the grid and extract environment characteristics, such as the degree distribution, the geodesic path, latency. The complex network vertices represent grid process elements, which are generalized as computers. The random and scale free models were implemented in a simulator. These models, associated with Dijkstra algorithm, helps the simulated annealing technique to find out efficient allocation solutions, which minimize the application response time.

1 Introduction The evolution of the computer electronics have made feasible the production of low cost microprocessors and the computer networks dissemination. This motivated the development of distributed systems. Applications executing on such systems have been presenting a complexity growth. Moreover, the high cost of specialized resources, such as parallel machines and clusters, demonstrate the need of a technology able to provide high scale distributed resources. Those needs have been motivating the development of grid computing. The resource allocation, in such systems, motivated the study of new job schedulers addressed to large scale environments. The job scheduling problem is an important subject in distributed systems, which aims at taking decisions based on policies such as [1,2,3,4,5]. Policies distribute processes, which compose distributed parallel applications, on the available processing elements (PEs), according to different objectives such as: load balancing, reduce application response time and improve the resource usability. Such scheduling policies, R. Perrott et al. (Eds.): HPCC 2007, LNCS 4782, pp. 204–215, 2007. c Springer-Verlag Berlin Heidelberg 2007 

A Complex Network-Based Approach for Job Scheduling in Grid Environments

205

proposed for conventional systems (parallel machines, clusters and NOWs1 ) do not provide good solutions for grids, which bring some new functional requirements and objectives. Grid resources are heterogeneous and of unpredictable availability. Common decisions to be taken by the scheduler, in such environments, are: which applications will have access to the computational resources, the amount and localization of resources to be used by applications. These decisions are affected by different factors, such as the imposed system workload, the resource heterogeneity and user requirements. Besides that, the scheduling has to deal with specialized applications which have different resource usage behaviors [6]. The computational grids can better be represented, and also the scheduling problem, by using complex networks with optimization techniques. Complex networks are a knowledge representation theory which use topological structures (graphs) to store information. They allow diverse connection types to be established among entities, better representing the real system. In this work, the network vertices represent computers and the edges, the connectivity among them. Relevant grid characteristics and properties can be mapped in complex network models, such as the degree distribution, distance and latency between vertices. Such information can be used by the scheduling optimization technique. By observing the advantages of complex networks, Zhao et al. [7] and Costa et al. [8] proposed specific solutions to computing problems. In the first work, the congestion control problem, in Internet gateways, was modeled by using complex networks. Important metrics were defined to prevent traffic chaotic situations in communication channels. In the second work, complex network models characterize grid environments. Experiments provide model comparisons and conclude about how they can improve parallel application performance. Motivated by such works, this paper adopts complex network models and the simulated annealing technique to optimize the job scheduling problem in computational grids. The complex network usage is convenient to model grid environment characteristics, such as: statistical metrics to remove and insert computers, the distance and connectivity among computers. The random and scale free models and the simulated annealing technique were implemented in a simulator. Results demonstrate the scheduling behavior in environments following the two complex network models. This paper is organized as follows: section 2 reviews the related work; concepts on complex networks are described in section 3; section 4 presents the simulated annealing technique; the job scheduling model is proposed in section 5; section 6 presents the results; conclusions are described in section 7.

2 Related Work The grid computing research is mainly concentrated in the coordination of geographically distributed resources aiming high performance. Some of the main approaches are [9,10,1,2,3]. In [9] the UGSA (Unified Grid Scheduling Algorithm) algorithm is proposed, which considers the information on the system workload and the communication latency for 1

NOWs – Network of Workstations.

206

R.P. Ishii, R.F. de Mello, and L.T. Yang

job scheduling. Applications are mapped in DAGs (Directed Acyclic Graph) which define how processes will be allocated in the grid processing elements. In this work, a genetic algorithm module is also defined, which is executed when processes arrive at the system. In [10] a stochastic algorithm, named stochastic greedy, is proposed which prevents degradation in the system performance. Dynamic hash tables and data replication techniques are used to keep the system workload updated and, in this way, to consider the last information in the job scheduling. The proposed algorithm is compared to the original greedy algorithm indicating higher performance and lower overload. In [2] the TDS policy [1] is extended by solving some of its limitations. Optimizations are defined to determine whether the scheduling result is good or not, according to the policy objective. The main idea is to duplicate processes before placing in the processing elements. The TDS is conceptually compared to the TDS extended, although no real results are presented to quantify such assumptions. In [3] the opportune cost policy is proposed, which considers applications in which processes may cause communication overhead. A marginal cost function [11] is adapted to allow process reallocation on processing elements. The routing concepts of virtual circuits are used to determine the CPU overhead in communication terms. Each system processing element has multiple resources: CPU, memory, input/output devices, etc. The objective is to minimize the overload caused by using such resources. The proposed overhead evaluation model does not consider the impact that each process cause in the network communication. Besides that, the model does not evaluate the overhead weight in a measure which allows to determine the CPU delay, such as the number of MIPS (millions of instructions for second) consumed when sending and receiving network messages.

3 Complex Networks A network is composed of a set of interconnected elements [12] called vertices or nodes, which are linked by edges. Many kinds of systems can be modeled by using this concept, such as social, information, technological and biological networks. Newman [12] has defined three topics to be prioritized when studying complex networks. The first aims at finding topological properties such as the path length among vertices and the degree distribution, what characterizes the network structure and behavior. For this, we may define mechanisms to measure and collect network properties. The second aims at creating a complex network model which helps to understand such properties, for instance, the interaction degree among elements. The third objective aims at predicting the network behavior based on measured properties and local rules, such as how the network structure affects the Internet traffic, or how the web server structure influences on its performance. 3.1 Complex Networks Models In the last years, lots of attention has been paid to complex networks what is evident by studies in diverse areas: social, information, technological, and biological networks.

A Complex Network-Based Approach for Job Scheduling in Grid Environments

207

(a) Random model (b) Small world model (c) Scale free model Fig. 1. Examples of complex network models

This motivated the design of evaluation models to explain the area characteristics and properties. The main models are: Random Model. The random model, defined by Erd¨os and R´eny [13], is considered the most basic complex network. This model generates random graphs with N vertices and K edges, called random graph ER. Having N initially detached vertices, the model ER is obtained by randomly connecting selected vertices (there is a probability for an edge binding each two vertices) until the number of graph edges is equal to K (techniques may be used to avoid multiple connections). In this network model, the vertex expected degree is defined by the equation 1. GER N,K

(1)

The figure 1(a) presents an example of the random model. By considering that the generation of network connections is random, Erd¨os and R´enyi concluded that all vertices, in a specific network, have approximately the same number of connections, or the same probability to have new connections [14]. Small World Model. Duncan Watts and Steven Strogatz [15] discovered that networks present high interconnection patterns, tending to form clusters of vertices. They had considered a model similar to the one by Erd¨os and R´enyi, where the edges are established between adjacent vertices while part of them are randomly defined. This model demonstrates that the average distance between any two vertices, in large networks, does not exceed a small number of hops [16]. In the Watts and Strogatz model each vertex knows the localization of several others. In large scale, such connections guarantee few separation hops among the network vertices. In a large network, few edges among clusters are enough to form a small world, transforming the network into a large cluster [16]. An example of this network model is presented in figure 1(b). Scale Free Model. Barab´asi and Albert demonstrate in [14] that some networks are not randomly built. They define the existence of an order in the network structure dynamics with some specific characteristics. One of such characteristics is called preferential attachment: a new vertex tends to connect to any other, although there is a high probability to attach it to the highly connected vertices. This implies in another basic premise: networks are not formed by degree-equitable vertices.

208

R.P. Ishii, R.F. de Mello, and L.T. Yang

On another hand, such networks present few highly connected vertices (hubs), being most of them with few connections. Hubs always tend to receive more connections. Networks with such characteristics (example in the figure 1(c)) are named scale free. The name scale free comes from the mathematical representation characteristics of the connection degree presented by the network vertices, which follows a very particular distribution, named power law. This is a logarithmic distribution which decreases abruptly and has a long tail. This distribution implies that most of the vertices have just few connections and a significant minority of them has a large number of connections. More specifically, the degree distribution follows a power law for a large k according to the equation 2. (2) P (k) ∼ k −γ

4 Simulated Annealing The simulated annealing (SA) technique aims at finding a global minimum for an energy function [17]. Its name comes from an analogy to the metallurgy annealing, which consists of the controlled heating and cooling of materials aiming at reducing the physical defects. Algorithm 1. Simulated Annealing 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27:

Let the initial solution S0 , the initial temperature T0 , the cooling rate α and the maximum number of iterations to reach stability Itermax N (S) // possible solutions space S ← S0 ; // current solution S  ← S; // better solution until the current moment T ← T0 ; // current temperature IterT ← 0; // iteration number T while T > 0 do while IterT < Itermax do IterT ← IterT + 1; Generate a neighbor S  ∈ N (S) Δ ← f (S  ) − f (S) if Δ < 0 then S ← S; if f (S  ) < f (S ∗ )) then S ∗ ← S  ; // best solution end if else Generate a random x ∈ [0, 1]; if x < e−Δ/T then S ← S; end if end if end while T ← α ∗ T; IterT ← 0; end while Return S ∗ ;

This technique introduces the system temperature concept, which makes possible to find global minima. In this way, for each iteration, the algorithm considers a possible neighbor state to the current S, which is named S  . During this evaluation, the transition probability from the current state to the new one is randomly determined, trying to pass

A Complex Network-Based Approach for Job Scheduling in Grid Environments

209

the system to less energy states. The neighborhood is explicitly defined, being able to present some variations for specific problems. The state transition probability is calculated by the function P (E, E  , T ), where E and E  represent the energies E(S) and E(S  ) for the states S and S  , respectively, and the parameter T is the system temperature, modified as the execution flows. The essential property of this function is that the transition probability P must be different from zero, with E0 > E which indicates a transition to a worse state (i.e., it presents higher energy). This system characteristic is used as a way to prevent the system stagnation in a local minimum. On the other hand, when the system temperature T is next to zero, the probability function must tend to zero if E0 > E, otherwise return a positive value. This guarantees, for low values of T , that the system tends to find lower energy solutions. In this way, the simulated annealing technique can be used to determine behavior changes, trying to offer a global adequate solution for the optimization problem. However, to apply this technique, we must know the system in order to determine the temperature variation when searching the global minimum. The simulated annealing solution adopted in this work is presented in the algorithm 1.

5 Model for Job Scheduling in Grid Computing Motivated by results presented in [7][8] and by the need of wide scale systems, this paper adopts a model based on complex networks to represent a grid computing topology and study the job scheduling problem. From this model it is possible to determine important characteristics to take scheduling decisions such as: the connection degree among vertices, the communication channel latency and the overhead. Such characteristics are included in the proposed job scheduling algorithm which is based on the simulated annealing technique. This algorithm aims at reducing the application response time and increasing the system throughput.

(a) The model architecture

(b) A grid processing element

Fig. 2. Modeling the job scheduling problem

The proposed model architecture is presented in the figure 2(a), which is composed of the following modules: 1. Grid computing modeling – In this module, complex network models are used to characterize the grid processing elements, i.e., the computers. Initially, the random and scale free models were studied and implemented in a simulator;

210

R.P. Ishii, R.F. de Mello, and L.T. Yang

2. Vertices connectivity – This module is responsible for the complex network configuration which characterizes the relationships among vertices. In the simulator, each network vertex represents a processing element and its attributes are (figure 2(b)): (a) processQueue and finishedQueue – they represent the ready and finished process queues, respectively; (b) distance – this vector stores the costs to reach each network vertex. The costs are calculated using the Dijkstra algorithm; (c) id computer – it identifies each grid computer; (d) local time – it represents the computer local clock; (e) other fields – there are other fields to represent the processing capacity, memory read and write operations, network read and write operations, which are defined by probability distribution functions (PDF). For example, the ipsCapacity is defined as an exponential PDF with average 1500, defining the capacity of processors. Other attributes are defined in the same way. The failure of a communication channel is represented, in the complex network, as the edge elimination. In the same way, the failure of a processing element is represented by the vertex elimination. The elimination as well as the insertion of new vertices requires the model reconfiguration, in order to adjust the costs of better paths between vertices. This is obtained by using the Dijkstra algorithm, i.e., for each vertex elimination/insertion in the environment, the algorithm is re-executed. In the proposed simulator, the insertion as well as the removal of grid processing elements is modeled by PDFs, as demonstrated in the section 6. 3. Scheduling optimization – This paper considers complex network models and the simulated annealing optimization technique to improve the application performance running on grids. After defining the system model and calculating all the costs to reach any vertex, from any origin, we have to allocate processes in grid computers. In order to solve this problem, optimization techniques can be applied to generate solutions. In this work we adopt the simulated annealing technique (SA) to improve process allocations. The problem solution is represented by a matrix M = (mpc ), where p is the process number (matrix rows) and c is the computer number (matrix columns). The allocation of the process p in a computer c is represented by P roc = mpc . An example is presented in the figure 1, where each row represents a process and each column a computer. Matrix elements with value 1 represent the process Table 1. A solution matrix Computers Processes

1

2

3

4

5

1 2 3 4 5 6 7 8 9

0 0 1 0 0 0 0 1 0

0 1 0 0 0 1 0 0 0

0 0 0 1 0 0 0 0 0

1 0 0 0 0 0 1 0 1

0 0 0 0 1 0 0 0 0

A Complex Network-Based Approach for Job Scheduling in Grid Environments

211

and computer association, i.e., which computer (column) will execute which process (row) according to the suggested solution. A process can be only placed in a computer. The SA simulates a method analogous to the cooling of atoms in thermodynamics, known as annealing. The algorithm procedure (algorithm 1) is invoked whenever there are processes to be allocated. The adopted energy function (equation 3, where getP rocessETpc returns the estimated execution time of the process p when placing it in the computer c) aims at finding solutions which minimize the total process response time. 

1 getP rocessETpc

(3)

The proposed optimization algorithm is decomposed in two overlapping searches: – The internal search contains the optimization process. For each iteration, the solution neighborhood is explored; – The external search controls the process finish. It is based on cooling state concepts and considers that a state is cooled when there is no possibility to reach a better solution. The algorithm starts searching based on an initial solution. For instance, consider a parallel application launched in the computer c with id computer = 1. In this way, all the application processes are located in the column corresponding to that computer in the initial solution matrix (example in table 2). Table 2. Initial matrix solution Computers Processes

1

2

3

4

5

1 2 3 4 5 6

1 1 1 1 1 1

0 0 0 0 0 0

0 0 0 0 0 0

0 0 0 0 0 0

0 0 0 0 0 0

In each loop iteration, which characterizes the main procedure, a solution S  , which is a neighbor of the current one S, is randomly generated. The energy function value variation is evaluated to each neighbor solution generated. In this evaluation the equation 4 is calculated. When Δ < 0, S  starts to be the new current solution. When the generated neighbor is worse, in a quantity Δ > 0, it can be accepted with a probability equals to e−Δ/T , where T is the temperature parameter. Δ = f (S  ) − f (S)

(4)

This process is repeated until T is too small that no movement can be accepted, i.e., the system reaches stability. The obtained solution, in this stability instant, evidences a local minimum. The probability to accept movements, which degrade the energy function value, decreases proportionally to the temperature.

212

R.P. Ishii, R.F. de Mello, and L.T. Yang

4. Evaluation and adaptation – After the optimizer execution, i.e. the simulated annealing procedure, a new solution (matrix) for a specific application is obtained. Then, the processes are migrated to the respective computers, i.e., the system is adapted to the new solution, until receiving new applications (what launches the optimizer again). A simulator was developed to analyze the job scheduling performance under different complex network models for grid computing. This simulator, developed in the Java language, implements the random and scale free complex network models. Besides that, it also implements the simulated annealing technique (section 4) to optimize the job scheduling problem in grids. The main module of this simulator is the class Simulator, responsible for all simulation process control. Computers are represented by the class Computer, and its characteristics presented in the figure 2(b). After creating all computers, they are associated to one of the two possible complex network models: Random or ScaleFree. After that, the communication costs are calculated by using the Dijkstra algorithm (class Dijkstra). The application submission is simulated by attributing processes (object of the class Process) to computers and calling the optimizer (class SA), which applies the simulated annealing algorithm to look for job scheduling solutions. Process characteristics are obtained by a trace file (class Log-Feitelson) [6]. This trace follows the Feitelson’s workload model2 [6] which is based on the analysis of six execution traces of the following production environments. This model defines that the process arrival follows an exponential PDF with average 1500 seconds. The other simulator parameters are also defined by PDFs3 : computer capacity in MIPS; read and write network throughput in KBytes/s; read and write memory throughput in MBytes/s; read and write disk throughput in MBytes/s; process workload in MIPS; arrival interval of parallel applications; process memory occupation in MBytes: used to define the cost to transfer the process in case of migration; probability distributions to define when vertices (i.e. computers) are inserted and removed from the complex network.

6 Results Experiments were conducted to determine which environment configuration presents better results for the job scheduling, i.e., lower parallel application response time. Other simulator parameters had to be defined for such experiments. Some of those parameters were defined in accordance with previous experiments on real environments, others in accordance with our experience and expectations on grid computing environments. The parameters are: – application arrival time – it is represented by an exponential PDF with average 1500 seconds, which follows the behavior detected by Feitelson [6]; 2

3

Feitelson’s workload model – available at http://www.cs.huji.ac.il/labs/parallel/workload/models.html. This simulator uses the probability distribution functions from the PSOL library, available at http://www.math.uah.edu/psol/objects/PSOL.jar.

A Complex Network-Based Approach for Job Scheduling in Grid Environments

213

– addition of computers in the environment – the interval between consecutive additions is represented by an exponential PDF with average 2500 seconds and another exponential PDF with average 20 for the number of computers to be added; – removal of computers from the environment – the interval between consecutive removals is represented by an exponential PDF with average 3500 seconds and another exponential PDF with average 10 for the number of computers to be removed; – number of changes made by the SA algorithm – 5 and 10 changes when searching for a global minimum; – complex network average degree – 3, 5 and 7 which represent the average number of connections for each network vertex; – process size – exponential PDF with average 2MB which represents the process memory occupation. This is used by the SA algorithm to calculate the migration cost when transferring the process over the communication channel; – network read and write operations – they are represented by an exponential PDF with average 100KB, i.e., each process, on average, reads or writes 100KB in the network; – disk read and write operations – they are represented by an exponential PDF with average 100KB;

(a) SA 5 changes, applications up to 64 tasks

(b) SA 10 changes, applications up to 64 tasks

(c) SA 5 changes, applications up to 128 tasks (d) SA 10 changes, applications up to 128 tasks

Fig. 3. Scheduling results

214

R.P. Ishii, R.F. de Mello, and L.T. Yang

– memory read and write operations – they are represented by an exponential PDF with average 500KB; The figures 3(a), 3(b), 3(c) and 3(d) present the application response times. The lower the response time is, the higher is the performance. The first case (figure 3(a)) presents the obtained results for the SA algorithm with 5 changes executing parallel applications composed of up to 64 tasks. We observe that the response time for the random complex network model had better results. Only for the last case, with larger average degree of the vertices, the scale free model outperforms the random. The second case (figure 3(b)) considers 10 changes for the SA, executing applications of up to 64 tasks. In this situation the largest number of changes increases the scale free performance, which, only in the last case, is surpassed by the random model. The figure 3(c) presents results considering 5 changes for the SA and parallel applications composed of up to 128 tasks. The figure 3(d) considers 10 changes for the SA and applications with up to 128 tasks. In these two cases, we observe that by increasing the number of changes, the scale free model outperforms the random one. By knowing the Internet follows the scale free model [18,19] and computational grids are implemented on such infrastructure, we can conclude that algorithms which explore a large solution space provide better results on such model. This becomes evident when, by using a large number of changes in the SA algorithm, better solutions are obtained. Situations where the algorithm does not provide a large solution space, the inherently characteristics of the complex network random model assists in the process distribution, however this is not the case when considering grid environments.

7 Conclusion In order to better model a real grid computing environment and approach the scheduling problem using updated information, this paper considers a scheduling model applying two complex network models and the simulated annealing optimization technique. Complex networks assist in the grid modeling and also in the extraction of the environment characteristics such as: interconnection degree, distance and latency between pairs of vertices (which represent computers). Experiments were conducted using a simulator which allowed to observe that the inherently Internet characteristics, which follows the scale free model, needs an optimization algorithm with a large search space to provide good scheduling solutions. The complex network random model assists in the process distribution, as the search space is amplified by the inherently interconnection of vertices. Therefore, the interconnection among vertices defines the optimization approach to be adopted.

Acknowledgments This paper is based upon work supported by CAPES, Brazil under grant no. 032506-6. Any opinions, findings, and conclusions or recommendations expressed in this material are those of the authors and do not necessarily reflect the views of CAPES.

A Complex Network-Based Approach for Job Scheduling in Grid Environments

215

References 1. Ranaweera, S., Agrawal, D.P.: A task duplication based scheduling algorithm for heterogeneous systems. In: Parallel and Distributed Processing Symposium - IPDPS 2000, pp. 445–450 (2000) 2. Choe, T., Park, C.: A task duplication based scheduling algorithm with optimality condition in heterogeneous systems. In: International Conference on Parallel Processing Workshops (ICPPW’02), pp. 531–536. IEEE Computer Society Press, Los Alamitos (2002) 3. Keren, A., Barak, A.: Opportunity cost algorithms for reduction of i/o and interprocess communication overhead in a computing cluster. IEEE Transactions on Parallel and Distributed Systems 14, 39–50 (2003) 4. Wang, Q., Zhang, L.: Improving grid scheduling of pipelined data processing by combining heuristic algorithms and simulated annealing. In: Computer and Computational Sciences, 2006. IMSCCS ’06. First International Multi-Symposiums on, vol. 1, pp. 583–588 (2006) 5. Pop, F., Dobre, C., Godza, G., Cristea, V.: A simulation model for grid scheduling analysis and optimization. In: Parallel Computing in Electrical Engineering, 2006. PAR ELEC 2006. International Symposium on, pp. 133–138 (2006) 6. Feitelson, D.G.: Packing schemes for gang scheduling. In: IPPS ’96: Proceedings of the Workshop on Job Scheduling Strategies for Parallel Processing, London, UK, pp. 89–110. Springer, Heidelberg (1996) 7. Zhao, L., Lai, Y.-C., Park, K., Ye, N.: Onset of traffic congestion in complex networks. Phys. Rev. E Stat. Nonlin. Soft Matter Phys. 71, 26–125 (2005) 8. Costa, L.F., Travieso, G., Ruggiero, C.A.: Complex grid computing. The European Physical Journal B - Condensed Matter 44(1), 119–128 (2005) 9. Aggarwal, A.K., Aggarwal, M.: A unified scheduling algorithm for grid applications. In: High-Performance Computing in an Advanced Collaborative Environment, 2006. HPCS 2006. 20th International Symposium on, pp. 1–1 (2006) 10. Zheng, Q., Yang, H., Sun, Y.: How to avoid herd: a novel stochastic algorithm in grid scheduling. In: High Performance Distributed Computing, 2006 15th IEEE International Symposium on, pp. 267–278. IEEE Computer Society Press, Los Alamitos (2006) 11. Aspnes, J., Azar, Y., Fiat, A., Plotkin, S., Waarts, O.: On-line routing of virtual circuits with applications to load balancing and machine scheduling. J. ACM 44, 486–504 (1997) 12. Newman, M.E.J.: The structure and function of complex networks. SIAM Review 45, 167– 256 (2003) 13. Erdos, P., Renyi, A.: On random graphs. Publicationes Mathematicae 6, 290–297 (1959) 14. Barabasi, Albert.: Emergence of scaling in random networks. Science 286, 509–512 (1999) 15. Watts, D.J., Strogatz, S.H.: Collective dynamics of ’small-world’ networks. Nature 393, 440– 442 (1998) 16. Buchanan, M.: Nexus - Small Worlds and the Groundbreaking Science of Networks. W. W. Norton & Company (2002) 17. Kirkpatrick, S., Gelatt, C.D., Vecchi, M.P.: Optimization by simulated annealing. Science, Number 4598, 220 (4598), 671–680 (1983) 18. Albert, R., Barabasi, A.L.: Statistical mechanics of complex networks. Reviews of Modern Physics 74, 47–101 (2002) 19. Faloutsos, M., Faloutsos, P., Faloutsos, C.: On power-law relationships of the internet topology. In: SIGCOMM ’99: Proceedings of the conference on Applications, technologies, architectures, and protocols for computer communication, pp. 251–262. ACM Press, New York (1999)