Soft Comput DOI 10.1007/s00500-008-0356-2 FOCUS A hybrid evolutionary approach for heterogeneous multiprocessor scheduling C. K. Goh · E. J. Teoh · K. C. Tan © Springer-Verlag 2008 Abstract This article investigates the assignment of tasks with interdependencies in a heterogeneous multiprocessor environment; specific to this problem, task execution time varies depending on the nature of the tasks as well as with the processing element assigned. The solution to this heterogeneous multiprocessor scheduling problem involves the optimization of complete task assignments and processing order between the assigned processors to arrive at a minimum makespan, subject to a precedence constraint. To solve an NP-hard combinatorial optimization problem, as is typified by this problem, this paper presents a hybrid evolutionary algorithm that incorporates two local search heuristics, which exploit the intrinsic structure of the solution, as well as through the use of specialized genetic operators to promote exploration of the search space. The effectiveness and contribution of the proposed features are subsequently validated on a set of benchmark problems characterized by different degrees of communication times, task, and processor heterogeneities. Preliminary results from simulations demonstrate the effectiveness of the proposed algorithm in finding useful schedule sets based on the set of new benchmark problems. Keywords Multiprocessor scheduling · Heterogeneous · Hybrid evolutionary algorithm · Local search · Precedence C. K. Goh (B) Spintronics, Media and Interface Division, Data Storage Institute, DSI Building, 5 Engineering Drive 1, Singapore 117608, Singapore e-mail: [email protected] E. J. Teoh · K. C. Tan Department of Electrical and Computer Engineering, National University of Singapore, 4 Engineering Drive 3, Singapore 117576, Singapore 1 Introduction The multiprocessor scheduling problem is a broad category of a class of combinatorial optimization problems in which an originally large problem is broken down into smaller tasks. These smaller, partitioned tasks then require suitable assignment to the individual processing units of a multiprocessor system or processing elements (PE) to be solved. To obtain solutions for optimal schedules in such systems, it has been shown that the problem is NP-hard for the general case (Garey and Johnson 1979; Kasahara and Narita 1984; Lewis and El-Rewini 1992; Papadimitriou and Yannakakis 1990). The underlying motivation for this problem is quite significant, considering the emergence of computer programs with increasingly higher computational requirements and algorithmic complexity. These factors have necessitated the need for parallel PE in a multi-computer environment, which in turn has seen the increasing need for task allocation to be ‘optimally’ distributed in a suitable manner to these individual processing units. A typical program can usually be decomposed into a set of smaller tasks, similar to a divide-and-conquer approach. These smaller tasks almost always have dependencies, and hence precedence requirements in that the results of another set of tasks are required before a particular task can be executed. The critical aim of a scheduler is thus to assign partitioned tasks to available processors in a manner such that (1) the requirements (or constraints) of precedence between these tasks are met and (2) the resulting overall length of time required to execute the entire program, the schedule length or makespan, is minimized (Wu et al. 2004). To complicate matters, the scheduling of tasks becomes more challenging when communication delays are accounted for. A multiprocessor scheduling problem can be categorized into different classes based on the characteristics of the 123 C. K. Goh et al. problem, the tasks to be scheduled, the multiprocessor system, as well as the availability of a priori information regarding the processing time (El-Rewini et al. 1994; Kwok and Ahmad 1997, 1999). Typically the PE constituting a multi-computer environment can be of the same capability (this is known as a homogenous environment) or of a different capability (this is known as a heterogeneous environment)— this paper is focused on the latter. Presently, there are numerous methods and approaches which have been developed and subsequently applied to the multiprocessor scheduling problem, typically using a deterministic approach. El-Rewini et al. (1994) provides a fairly comprehensive taxonomy of how scheduling problems can be categorized, and highlights the key differences that distinguishes one class from the next. Further to this, in Kwok and Ahmad (1997, 1999), present a wide-ranging overview and classification of scheduling algorithms, particularly focusing on deterministic and static scheduling problems. Most of the present techniques are based on heuristics (Kruatrachue and Lewis 1987; Macey and Zomaya 1998) that are not only greedy in nature but also capable of solving certain instances of the scheduling problem efficiently. With that in mind, the approach proposed here is largely inspired by developments in computational intelligence: evolutionary algorithms (EAs) are a class of stochastic global optimization techniques that has been gaining significant attention from researchers in many fields and it has also been applied to solve the heterogenous multiprocessor scheduling optimization problem (Ritchie and Levine 2004; Zhong et al. 2004). While EAs are excellent global search algorithms, it is known that they can take a relatively long time to locate the local optimum in the region of convergence (Ong et al. 2006). On the other hand, local search heuristics are capable of locating the optimum quickly but are prone to local optimal traps. Therefore, EAs are often hybridized with local search heuristics to maintain a balance between exploration and exploitation, which is crucial to the success of search and optimization processes (Burke et al. 2001; Franca et al. 2001; Ishibuchi et al. 2003; Merz and Freisleben 2000; Ong and Keane 2004; Tang et al. 2007; Zhou et al. 2007). Multiprocessor systems have also been exploited to improve EA performance (Lim et al. 2007). This paper attempts to present a new hybrid evolutionary algorithm (HEA) for solving the above heterogeneous multiprocessor scheduling problem. The proposed algorithm incorporates two local search operators, based on firstly, list scheduling and secondly, task duplication; both methods attempt to exploit the intrinsic structure of the scheduling problem. Unlike existing evolutionary approaches used to solve the heterogeneous multiprocessor scheduling problem, the proposed HEA also implements a variable length chromosome which preserves the precedence relations, a PE schedule crossover which facilitates the exchange of good schedules 123 assigned to the individual processors as well as specialized mutation operators to improve the diversity of the evolving population. This paper is organized as follows: Sect. 2 gives an overview of existing works as well as the problem formulation of the heterogeneous multiprocessor scheduling problem. Section 3 presents the various features of the proposed HEA including the local search heuristics and specialized genetic operators as well as the algorithmic flow. Section 4 presents the extensive simulation results and analysis of the proposed algorithm. Conclusions are then drawn in Sect. 5. 2 Background information 2.1 Overview of existing works Multiprocessor scheduling based on methods motivated by evolutionary computation approaches have been the focus of many research works over the last decade. Here we offer a brief, non-exhaustive overview of similar works that have motivated our interests and research. Ahmad and Kwok (1998) proposed a task duplication approach (together with a review and comparison of some similar algorithms) to mitigate the expensive communication overhead in interprocessor communications that is required when executing dependent tasks on multiple processors. In a similar manner, (Baskiyar and Dickinson 2005) addresses static scheduling of a directed a-cyclic task graph (DAG) on a heterogeneous, bounded set of distributed processors to minimize the makespan, also based on a task duplication approach. Most of the present techniques are based on heuristics that are capable of solving only certain instances of the scheduling problem efficiently. However, the scheduling of tasks with communication overheads and dependencies are gaining increasing attention from researchers. Here, we investigate an alternative paradigm, based on biologically inspired algorithms, to efficiently solve the scheduling problem without the need to apply any restricting assumptions. Aside from the above, other works in the literature have used EAs to determine task priorities based on list scheduling techniques. List scheduling heuristic (LSH) is an approach involving the assignment of a priority to each task to be scheduled within a list, which is then subsequently sorted in decreasing task priority. The task with the highest priority in the unscheduled task list is typically assigned to the first available processor and then removed from the list. If there are more than one task being assigned the same priority level, selection from among the candidate tasks is typically done randomly. This conventional approach will be applied in the comparative study conducted in this paper. On the other hand, an alternative approach would be to use EAs to directly evolve task assignment and order in A hybrid evolutionary approach for HMPS processors. Hou et al. (1994) used an EA to evolve candidate solutions, or individuals that in turn consist of multiple lists, with each list representing the tasks assigned to one processor; the authors restrict the explorable design space in order to avoid invalid solutions. However in their proposed approach, the authors consider only homogeneous multiprocessor systems. Consequently, the crossover operation then exchanges tasks between corresponding processors from two different individuals, after which the mutation operator then exchanges these tasks within a single individual. Overall, this approach restricts the actions of genetic operators to ensure the validity of evolved individuals. However, such an approach would mean that some parts of the search space may be unreachable by the algorithm. Correa et al. (1999) subsequently claims to improve upon Hou’s original approach to circumvent this problem, and allow the entire search space to be explored. In Kwok and Ahmad (1997), proposed a coarse-grained parallel genetic algorithm (GA) together with a heuristical list scheduling method, where candidate solutions are vectors of length n, with n being the number of tasks to be scheduled. The elements of a vector represent the tasks themselves and the order of the tasks gives the relative task priorities. A number of order-based crossover operators are presented and a mutation operator is used to perform random swapping of tasks. In Dhodi et al. (1995), proposed a “Problem Space Genetic Algorithm” (PSGA) for datapath synthesis. The problem itself is modified by the EA and subsequently transformed into solution space by means of a heuristic, thus avoiding infeasible solutions. Blickle et al. (1996) use an EA to perform allocation and binding on a system level. Scheduling is achieved in a separate step. The authors use multichromosomal individuals to encode the problem and to subsequently guide repair heuristics in parallel. Tsuchiya et al. (1998) proposed an approach in which a GA scheduler allows task duplication where a single task may be assigned to multiple processors. Alternatively, Zomaya et al. (1999) incorporate heuristics in the generation of the initial population of an EA and perform a thorough study of how GA performance varies with changing parameter settings. Wu et al. (2004) claims that an EA-based approach achieves good performance on most of the problems applied. They also suggest that GAs appear to be the most flexible algorithm for heterogeneous systems because heterogeneous processors make it more difficult for list scheduling algorithms to accurately estimate task priority. An alternative approach, motivated by ant colony optimization (ACO), is developed by Ritchie and Levine (2004). When combined with local and tabu search, the ACO-based algorithm is able to find shorter schedules on a few benchmark problems. ACO, as the authors also claim, has been shown to be a successful strategy for problems related to scheduling jobs in a heterogeneous computing environment. This approach was only tested in solving a scheduling problem in a static environment for independent jobs. 2.2 Heterogeneous multiprocessor scheduling problem Technological advancements have led to the development of large scale parallel and distributed systems for a large range of applications. However, applications are only able to exploit parallelism when their parts do not wait for data longer than necessary. This necessitates appropriate scheduling strategies, which are able to control access to processing resources, as well as scheduling strategies, which control execution of these parallel application modules. Thus, it is not surprising that the focus of research in this area has been on the efficiency and effectiveness of scheduling algorithms. There are increasing concerns that comparative studies performed are not adequate to evaluate the true abilities of the algorithms under test. Addressing the issue of data set generation, Hall and Posner (2001) presented a set of guidelines on how data sets should be generated for the evaluation of the various scheduling algorithms. In order to generate a set of good test problems, the researcher must consider: 1. 2. 3. 4. the purpose of the experiment, tests performed should be comparable, unintended bias that can skew the test results, and the reproducibility of the generation scheme. Further, Hall and Posner also state that the generation scheme should have properties such as variety, practical relevance, scale and size invariance, regularity, describability, efficiency, and parsimony. Kwok and Ahmad (1999) presented a suite of five different benchmark graphs. The proposed sets are peer set graphs (PSG), random graphs with optimal solutions using branch-and-bound (RGBOS), random graphs with predetermined optimal schedules (RGPOS), random graphs with no known optimal schedules (RGNOS), and traced graphs (TG). RGPOS is probably the most interesting set of task graphs in the sense that they are generated based on a set of pre-determined solutions. To our knowledge, this is the first instance of such generation scheme for a multiprocessor scheduling problem with communication delay. RGBOS also have a set of optimal solutions, which are determined using the A∗ algorithm (Ahmad and Kwok 1998). The A∗ algorithm is a search heuristic, which incrementally searches all paths from the starting point until it finds the shortest path to a goal. PSG is a collection of task graphs used by various researchers. RGNOS consists of large scale randomly generated task graphs while TG represent real-world applications. Coll et al. (2002) considered the issue of generating benchmark test sets for heterogeneous systems. The degree of heterogeneity between different processors is defined by a 123 C. K. Goh et al. processor power ratio (PPR), which represents the relative speeds between processors. In addition, they considered the different precedence relationships based on the specific nature of the task to be processed. More recently, Davidovic and Crainic (2003) proposed a set of benchmark problems modeling homogeneous systems with communication delays. Based on the criteria proposed by Hall and Posner (2001), they proposed two sets of task graphs. Similar to Kwok and Ahmad (1999), one of the proposed sets is generated based on some pre-determined desired solution. However, Davidovic and Crainic provide a much higher degree of control, allowing parameters such as dependency densities to be changed. 2.2.1 Problem formulation The multiprocessor scheduling problem can be simply stated as follows: Assuming there are n tasks that have to be executed on m processors—where and when should each task be executed, such that some performance measure(s) is (are) optimized? The task of the scheduling algorithm is to ultimately minimize a given cost function of time. The objective function used in this paper is defined as: F = min max T f (vi ) i=1,...,n (1) where T f (vi ) denotes the time for the complete execution of task vi . The goal of task assignment/mapping is to determine an assignment of tasks to processors and an order in which tasks are executed to optimize some performance measures. Often, the assignment process should aim to minimize the total cost of executing the programs. An optimal assignment determines both the allocation (identifying specific processor to run certain modules) and the schedule (execution order) of each task. A task in turn, is a collection of instructions, procedures or subroutines, possibly together with some data. Each task is assumed to be immutable. While distributing the tasks to parallel PEs is not difficult, introducing dependencies between the tasks causes degradation of the overall system performance. There are bindings or linkages between some pairs of tasks (we call these dependencies) since a procedure in one task may wish to (1) transfer control to another procedure in a different task or (2) access data contained/produced in a different task. It should be noted that these tasks only incur a communication delay when they are assigned to different PEs. It is, thus, important to make the assumption that the cost of executing tasks on different processors and the cost of the communication delay are known in advance. 123 As to why deterministic scheduling is considered, we are inclined to believe that a priori efforts must be devoted to analyze data from machine manufacturers and accumulate actual experience from running smaller programs on fewer processors. Such efforts are fully justified especially if repeated deterministic or production runs of important large programs will be run on large parallel systems where termination and successful results are expected. In fact, it is precisely for these production runs that the effort of optimizing assignment is justified in the first place. The duration of each task is known as well as precedence relations among tasks, i.e. which tasks should be completed before some others can begin. In addition, if dependent tasks are executed on different processors, data transferring times or communication delays that are given in advance are also considered. These latencies also include memory access and synchronization delays. To further include realism into our problem model, we also consider a heterogeneous system, that is a multiprocessor environment consisting of processors with different capabilities. Moreover, we only consider a non-preemptive system, that is, each PE will complete the processing of each task that is assigned to it. Essentially, this means that PEs will not suspend its processing to take on another task. 2.2.2 Problem generator In order to verify the efficacy of our proposed approach, a set of problems are needed for the experimental study. This is achieved via the construction of a benchmark problem generator, which produces a representative problem of a certain complexity based upon a set of input parameters. These test problems are in turn used as the input problem to the task scheduler. Having said that, there are four key components in a task scheduler: the parallel program of interrelated tasks, the target machine (model), the generated schedule, and the performance criterion. Previous works on task scheduling with dependencies usually use a graph representation for either the tasks of the parallel program and the computer model, or both. In an actual multiprocessor computing system, particularly those consisting of heterogeneous elements, the running time of a particular job is not the sole or primary factor to be considered when scheduling jobs. An equally important consideration is the time that it takes to migrate the executables and its associated data from one processor to the next. Braun et al. (2001) defined three types of heterogeneity: task heterogeneity, machine heterogeneity and consistency. Task heterogeneity is defined as the amount of variance possible among the execution times of the jobs. Machine heterogeneity, on the other hand, represents the variation of the running time of a particular job across the processors. Lastly, consistency can be categorized as either: consistent, A hybrid evolutionary approach for HMPS inconsistent and semi-consistent. A system is said to be consistent if for a processor A that executes a job C faster than another processor B, then A will execute all other jobs faster than B. A consistent system can therefore be seen as modeling a heterogeneous system in which the processors differ only in their processing speed. A semi-inconsistent system is made of elements from both consistent and inconsistent systems. Higher degrees of machine heterogeneity increase the complexity of the multiprocessor scheduling problem. This is because the scheduling algorithm now needs to account for the variation in the individual processor’s capabilities, in that certain processors might be more suitable for certain tasks due to hardware or software configurations and compatibility. The multiprocessor system is made up of m processors with their own local memories. The system can have various degree of heterogeneity and the processors are connected via bi-directional links of equal capacity. Each processor has an I/O unit that allows for communication and processing to be performed simultaneously. We assume that there are no start-up costs for initiating each task and that input buffers have infinite capacity. A convenient representation for the partially ordered set of tasks is a directed acyclic graph (DAG), which is also known as a task (dependency) graph, where a directed edge e( p, j) between two tasks v p and vi specifies that task v p must be completed before vi can begin. These directed edges in a DAG correspond to the communication messages as well as precedence constraints between the tasks. We consider a node and a task to be equivalent. A task is a set of instructions that must be executed sequentially in the same processor. They are considered to be the smallest possible instruction set that cannot be broken up any further. Mathematically, node v p is a predecessor of node vi if a directed edge originates from v p and ends at vi . In a similar manner, node vs is a successor of node vi if a directed edge originating from vi and ending at vs exists. From a mathematical perspective, for any vertex v in the DAG, there is no non-empty directed path that starts and ends on v—as such, for our multiprocessor task scheduling problem, DAGs are quite ideal models since it is not tractable for a vertex to have a path to itself; for example, if an edge v p → vi indicates that vi is a part of v p , such a path would indicate that v p is a part of itself, which is impossible. The test sets that were artificially generated using our benchmark problem generator is based on this concept of DAGs. From a practical viewpoint, actual multiprocessor systems are immensely complicated combinations of hardware, software and network components and thus it is difficult to make equitable comparisons of the different approaches that have been used on various systems. In constructing these problems artificially, and in a random manner, the input variables essentially controls not only the size, but also the Table 1 Description of inputs to task generator Parameter Description Values CCR Communication-to-computation ratio {0.5,1,1.5,2} Meanproc Mean processing time {10} h pe Variance of processing time {0.25,0.5,0.75} ht Degree of heterogeneity {0.25,0.5,0.75} dpe Width of DAG {0.5} dt Degree of dependency {0.25,0.5,0.75} n Number of processors {15} m Number of tasks {100} complexity of the generated test set. Specifically, these variables are: 1. 2. 3. 4. 5. 6. 7. 8. the number of nodes/tasks, the number of processors available, the degree of network connectivity, the communication-to-computation ratio—average communication cost divided by its average computation cost in a multiprocessor system. A low CCR in a DAG can be considered as a computation-intensive application; on the other hand if CCR is high, it is a communicationintensive application, the mean processing time—the average processing time for all the available processors, the variance of processing time—how large the spread of processing time between the available processors, the degree of heterogeneity—how widely differing the capabilities of the processors are, i.e. processors have different execution time on same the task, the degree of precedence/dependency relationship—how many predecessor tasks that must be completed before a particular task can be executed. Having said that, the generator produces different test sets for a given set of input parameters. For similar set of parameter, different task problems are generated due to randomness. The input parameters to the generator are shown in Table 1, together with the associated range of values. The variance in the processing times of the difference tasks comes from h pe , i.e the mean processing time of the ith task is given by Tmproc (vi ) = meanproc + h t · meanproc · U (−1, 1). (2) where U (−1, 1) denotes a random number sampled using uniform distribution. As mentioned before, each task may have different execution times on different processors. The actual processing time of the ith task on the jth processor is thus given by, Tproc (vi , pe j ) = Tmproc (vi ) + h pe · meanproc · U (−1, 1). (3) 123 C. K. Goh et al. Table 2 Generated test sets Test set CCR Meanproc h pe ht dpe dt n m T1 0.5 10 0.25 0.25 0.5 0.5 15 100 T2 1 10 0.25 0.25 0.5 0.5 15 100 T3 1.5 10 0.25 0.25 0.5 0.5 15 100 T4 2 10 0.25 0.25 0.5 0.5 15 100 T5 1 10 0.25 0.25 0.5 0.25 15 100 T6 1 10 0.25 0.25 0.5 0.75 15 100 T7 1 10 0.5 0.25 0.5 0.5 15 100 T8 1 10 0.75 0.25 0.5 0.5 15 100 T9 1 10 0.25 0.5 0.5 0.5 15 100 T10 1 10 0.25 0.75 0.5 0.5 15 100 Using these inputs for the benchmark problem generator, sets of random DAGs were constructed to be used as the test bed problems in our experimental study. For our simulation study, ten test sets were generated using various combination of the above input parameters, and are listed in Table 2. While the standard multiprocessor scheduling problem is itself an NP-hard problem, additional factors such as communication delays and heterogeneity increase the complexity of the problem. Hence, due to the sheer number of potential solutions in the search space, scheduling becomes a complex task without the use of an effective search algorithm. These sets are classified in terms of the possible difficulties. Each test set consists of different test problems with different degrees of heterogeneity and dependencies. Here, we consider a total of ten test sets generated in this study, which differs in terms of degree of heterogeneity, density, and CCR. A higher CCR value penalizes dependencies which require transmission or passing of messages from one processor to the next, making it less optimal for inter-processor communication to occur. The variance of processing time and degree of heterogeneity affects the individual processing capabilities of each processor, thus making ‘slower’ processors less likely to be assigned tasks, and biasing the utility of ‘faster’ processors. Lastly, the degree of dependency affects the total latency of the makespan in that each processor would have to ‘wait’ for its dependent tasks to finish execution. 3 Hybrid evolutionary algorithm This section presents the HEA specifically designed to solve the heterogeneous multiprocessor scheduling problem by means of specialized genetic and local search operators. The procedure for generating the initial population is presented in Sect. 3.1 while Sect. 3.2 describes the structure of the variable-length chromosome used to encode the task schedule in the HEA. Sections 3.3 and 3.4 describe the specialized 123 crossover and mutation operators used to explore the search space, respectively. Two local search heuristics that exploit the intrinsic structures of a heterogeneous multiprocessor scheduling problem solution are presented in Sect. 3.5. Finally, the algorithmic flow of the HEA is presented in Sect. 3.6. 3.1 Initialization The initial population is built using a random LSH, which ensures that the precedence relationships among the tasks are preserved. The initialization process starts with the assignment of priority to each task to be scheduled. In this paper, the priority of the ith task is simply the sum of the number of its parent tasks and their priorities as given below PrT j (4) PrTi = |Pi | + j∈|Pi | where Pi is the set of parent tasks of the ith task. The list of task is then sorted in the order of increasing priority. This priority list is also used during the genetic processes to maintain the precedence requirements. Instead of assigning the tasks to the earliest available PE, the lowest priority task is assigned to the PEs randomly. The rationale is to provide the initial population with a wider range of diversity to start with. 3.2 Variable PE chromosome Evolutionary algorithms operates on a set of encoded parameters to explore the solution space, providing researchers with the flexibility to design an appropriate representation that fulfills some criteria such as ease of implementation or exploitation of the problem structure. For simplicity, the chromosome is often represented as a fixed-structure and the embedded variables are usually assumed to be independent and context insensitive. As mentioned before, the precedence relations among the tasks must be satisfied in the heterogeneous multiprocessor scheduling problem. In Braun et al. (2001); Ritchie and Levine (2004), the chromosome is a n-dimensional array denoting the n tasks to be allocated and the encoded variable in each element represents the PE scheduled to execute the associated task. While such an encoding scheme is simple to implement, it does not consider the order in which the various tasks are processed and the evolved schedules will not satisfy the precedence constraints. On the other hand, Wu et al. (2004) considered a representation which encodes task-processor pairs and the order in which the pairs appear in the chromosome determines the order in which the tasks will be performed on each processor. This paper adopts a variable length chromosome which is illustrated in Fig. 1. In contrast to the mentioned works, this encoding scheme does not enforce a fixed number of PEs, i.e. A hybrid evolutionary approach for HMPS Fig. 1 Illustration of a the variable length chromosome and b the associated schedule (a) PEs used in the encoded solution PE1 PE3 PE4 (b) PE6 Processors 1 5 10 14 2 6 11 15 3 7 12 4 8 13 PE1 1 2 3 4 PE3 5 6 7 8 PE4 10 11 12 13 14 15 PE2 9 Tasks to be executed by the associated PE PE5 Tasks 9 PE Schedule the length of the chromosome varies with the actual number of PE utilized. For each of these PEs, there is an associated list of task assigned as well as the order of execution. Each of the task list will henceforth be denoted as PE schedule. When a task is scheduled to run before its predecessor tasks, which have been assigned to other PEs, the only problem is the long idle time incurred while waiting for all the predecessor tasks to be completed. On the other hand, if a task is scheduled to run before its predecessor tasks on the same PEs, then there is no way the task will ever be completed. The overall schedule is infeasible only if a task is scheduled to be executed before a predecessor task within a PE. This follows that it is sufficient to maintain a feasible overall schedule by ensuring the feasibility of each PE schedule. The precedence relations for the tasks executed in a PE can be easily preserved in the proposed scheme by maintaining the order of priority calculated at the beginning of the optimization process. 3.3 PE schedule crossover The crossover operation applied by most EAs to solve heterogeneous multiprocessor scheduling problem generally involve the swapping of random segments of tasks or processes between chromosomes, which do not preserve the quality of the different PE schedules. Descriptions of a number of ordered-based crossovers for combinatorial problems can also be found in Davis (1991), Eiben and Smith (2003). However, these crossover operators are not applicable due to the unique structure of the proposed variable length chromosome. The proposed PE schedule crossover is motivated by the fact that the makespan of the multiprocessor schedule is dependent on the fitness of the constituent PE schedules. Since the chromosome encodes a separate list of tasks for each PE, it is intuitive to design a crossover which allows good PE schedules to be shared with other chromosomes in the evolving population. The operation of the crossover is PE6 illustrated in Fig. 2. In the PE schedule crossover, a random PE schedule from each parent is selected for crossover. In the case where one of the selected chromosomes has only one PE schedule, only a schedule associated with a different PE is selected and inserted from the other parent. The selected PE schedule of one parent will either be inserted into the other chromosome as a new schedule or replaces the original schedule of that particular PE, if it is present. Duplicated tasks are deleted while missing tasks are randomly inserted to the other original PE schedules. The new PE schedule will remain intact. To ensure the feasibility of chromosomes after the crossover, the priority list computed at the beginning of the evolutionary process is used to sort the task assigned to each PE in ascending order to preserve feasibility. 3.4 Specialized mutation This paper applies three different specialized mutation operators to improve the diversity of evolving population. For every chromosome undergoing the mutation process, only one particular mutation operator is applied as shown by the pseudocode in Fig. 3. The main functionalities of the three mutation operators are summarized in Table 3. Similar to the PE Schedule crossover, each PE schedule is sorted based on the priority list at the end of the mutation operation. 3.5 Local search 3.5.1 Partial list scheduling The optimality of the multiprocessor schedule is only as good as the last completion time of the task. The idea of partial list scheduling (PLS) is to split up the workload among the PEs with the best and worst completion times to improve the makespan. The first step in this heuristic is to select the appropriate PEs from which all tasks are extracted and placed in a list. These PEs are selected based on two criteria, either the 123 C. K. Goh et al. (a) (b) Parent 2 Parent 1 Child 1 Child 2 PE1 PE3 PE4 PE6 PE1 PE5 PE6 PE1 PE3 PE4 PE5 PE6 PE1 PE5 PE6 1 2 6 12 7 2 1 1 2 6 2 12 7 2 12 3 4 8 14 8 6 3 3 4 8 6 14 8 6 14 5 10 9 10 9 4 5 10 9 9 10 9 15 11 5 13 11 13 11 15 11 7 11 7 13 12 15 15 13 13 14 14 14 (c) Child 1 Child 2 PE1 PE3 PE4 PE5 PE6 PE1 PE5 PE6 1 4 8 2 12 1 2 3 3 10 6 5 6 4 5 15 9 7 9 12 11 8 11 14 13 10 13 14 15 7 Fig. 2 Illustration of the PE schedule crossover for the various steps a selection of random PE schedule, b swapping of selected PE schedules, and c deletion of duplicates and random insertion of missing tasks to form child chromosome Mutation Operation rand < mutation rate IF Select one mutation operator with equal probability Partial Exchange AND No. of PE Schedules > 1 IF Perform Partial Exchange ELSEIF Schedule Merge AND No. of PE Schedules > 1 Perform Schedule Merge ELSEIF Partial Split AND No. of PE Schedules < |PE| Perform Partial Split END END Sort task based on priority END Fig. 3 Pseudocode of the mutation operation PE has a completion time that is greater than the upper quartile or it’s completion time is lower than the lower quartile of the PE completion times. In the next step, the extracted tasks are sorted based on their priorities determined at the start of the evolutionary process. The tasks, in the order of their priorities, are then assigned to the best possible processor, i.e. the one which allows the earliest start time considering inter-task communication (ITC). The new solution will be compared against the original and the better of the two will be retained. 123 3.5.2 Duplication scheduling In multiprocessor scheduling with task interdependencies, some PEs will be idle during various time slots because some task require data from its parent tasks which are assigned to other processors. The idea of duplicating tasks in these idle time slots is to reduce the waiting and ITC delays incurred to reduce the makespan. The pseudocode of the duplication scheduling (DS) heuristic is shown in Fig. 4. The task duplication procedure is conducted iteratively every task in the order of its execution for each PE. The heuristic first determines the idle time which is the difference between the actual and earliest possible start time of the task. It then attempts to duplicate the parent tasks, in the order of their contribution to the delay, until the idle time is used up. The new solution will be compared against the original and the better of the two will be retained. 3.6 Algorithmic flow The algorithmic flow of the HEA is shown in Fig. 5. The optimization process begins with the initialization of the A hybrid evolutionary approach for HMPS Table 3 Description of the mutation operation Operator Description Partial exchange The partial exchange operation involves a number of partial schedule exchanges. For each exchange, two PE schedules are randomly chosen and a segment of the selected schedules is then randomly selected and exchanged. In addition, a mechanism is in place such that no PE schedules will be selected twice in a particular partial exchange operation Schedule merge This operation concatenates the two PE schedules with the least number of tasks in the chromosome. Intuitively, this operation is not applicable to solutions with only one PE schedule Partial split This operation searches for the PE schedules with the most number of tasks, and breaks the schedule into two at a random point. After which, the upper segment of the divided schedule is assigned randomly to either an idle PE or inserted into the PE schedule with the least number of tasks Duplication Scheduling Local Search FOR All PE Schedules FOR All Task in PE Schedule Compute Tidle before task execution Determine parents of task Sort parents in descending order of completion time FOR Parents Determine Texe required if d uplicated Execution time< Tidle IF Duplicate parent Update Tidle: Tidle = Tidle - Texe ELSE Break END END END END Sort task based on priority Evaluate new solution new solution is better than old solution IF Replace old solution END Fig. 4 Pseudocode of the duplication scheduling local search Start Build Initial Population YES Stopping Criteria met? No Evaluate and Rank Solutions Update Archive Return Solution Evaluate and Rank Solutions Update Archive Perform Local Search Local Search Criteria met? Yes Tournament Selection PE Schedule Crossover No Mutation Fig. 5 Flowchart of HEA population based on the procedure described in Sect. 3.1. After the initial evolving population is formed, all the chromosomes are evaluated and ranked according to their final execution time in the population. Following the ranking process, an archive population is updated. In this paper, an archive is applied to store all the best solutions found during the search. The archive maintains a fixed number of solutions and the updating process consists of a few steps. The evolving population and the archived solutions are first combined and all duplicate solutions are deleted. The remaining solutions in the combined population are then inserted into the archive in the order of increasing rank until the archive is filled. The binary tournament selection scheme is then performed on the archive. In the binary tournament selection, a pair of individuals is selected randomly from the archive. Thereafter, the selected pair of individuals will enter a tournament where the chromosome with the lower rank is selected for reproduction. This procedure is performed until the mating pool is filled to preserve the original population size. The genetic operators consist of the PE schedule crossover and the three mutation operators presented in Sects. 3.4 and 3.5, respectively. The PLS and DS are applied to the archive populations at a fixed interval, TLS , for better local exploitation in the evolutionary search. Different schemes for incorporating the two local search methods will be explored in Sect. 4. The evolution process is repeated until the stopping criterion is satisfied. 4 Simulation results and analysis This section presents the extensive simulation results and analysis of the proposed HEA. The simulations are implemented using Matlab on an Intel Pentium 4 2.8 GHz computer and the results shown are based on the final makespan value of the best archived solution. Thirty independent runs are performed for each of the test sets in order to obtain the statistical information, such as consistency and robustness of the 123 C. K. Goh et al. Table 5 Different case setups to examine contribution of the local search heuristics Parameter Settings Populations Population size 20 Archive size 20 Chromosome Variable length chromosome Selection Binary tournament selection Crossover rate 0.9 Mutation rate 0.3 Evaluations 600 Local search frequency, TLS 5 algorithms. The various parameter settings for the algorithm are listed in Table 4. The number of evaluations includes the evaluation of solutions from the main algorithmic cycle as well as the local search operations. Section 4.1 demonstrates the effectiveness of the proposed local search operators, as well as analyzes how the various settings of the local search heuristics will affect algorithmic performances. Section 4.3 investigates the impact of different problem characteristics on HEA performances and how it compares against conventional heuristics. 4.1 Effects of local search The HEA incorporates the local search heuristics in order to exploit local schedules in parallel with global evolutionary optimization. In this section, the dynamics and parameter settings of PLS and DS are examined. Note that T1 and T4 are used in the study here since it has been observed in previous works that ITC will have severe impact on schedule optimality. Six settings of HEA with various implementations of the local search operators are investigated as shown in Table 5. No local search is applied in setup 1 while only one heuristic is applied for each solution undergoing local search for setups 2–6. In setup 2, either PLS or DS is randomly applied. (a) 350 Setup1 Setup2 Setup3 Setup4 Setup5 Setup6 340 Makespan 330 320 310 300 290 280 270 0 40 80 120 160 200 240 280 320 360 400 Evaluation Fig. 6 Evolutionary trend of the six setups for a T1 and b T4 123 2 3 4 5 6 PLS – Random Yes – Alternate∗ Alternate DS – Random – Yes Alternate Alternate∗ In the third and fourth setup, only one heuristic is applied. The asterisk (∗ ) in setup 5 and setup 6 denotes which local search is activated first as they are alternately executed. The evolutionary trends of the makespan averaged over 30 runs for T1 and T4 are plotted in Fig. 6a, b. From the plots, it can be observed that the application of local search results in significant dips in the convergence trace, particularly in instances where DS is applied. Figure 6a, b distinctively demonstrate the effectiveness of local exploitation in the HEA as the five setups which incorporates local search performed better as compared to setup 1. The performances of setup 2, setup 4, setup 5, and setup 6 are comparable, although the combination of DS being activated first and PLS in setup 6 seems to have a slight edge for both problems. On the other hand, setup 5 which activates PLS first has a slower convergence rate for both T1 and T4. The effectiveness of duplicating tasks in reducing overall completion time is also evident since the four settings of setup 2, setup 3, setup 5 and setup 6, are able to find solutions with makespans that are significantly lower than those found without local search and by PLS only. Interestingly, the application of DS seems to have more impact on T1 with an average of 10% improvement as compared to 5% for T4 which has a more severe CCR restriction. Setup 6 will be used as the default setup for all subsequent experiments. 4.1.1 Effect of local search frequency In general, there is a need to maintain a balance between exploration and exploitation. Therefore, experiments are also conducted to study the impact of local search frequency on (b) 560 Setup1 Setup2 Setup3 Setup4 Setup5 Setup6 540 520 500 480 460 260 250 1 Makespan Table 4 Parameter setting for HEA 440 0 40 80 120 160 200 240 280 320 360 400 Evaluation A hybrid evolutionary approach for HMPS (a) 360 (b) 580 1 3 5 7 10 340 1 3 5 7 10 560 540 Makespan Makespan 320 300 520 500 280 480 260 240 460 0 50 100 150 200 250 300 350 440 400 0 50 100 150 200 250 300 350 400 Evaluation Evaluation Fig. 7 Effects of various TLS settings for a T1 and b T4 250 460 (a) (b) 248 455 244 Makespan Makespan 246 242 240 238 450 445 236 440 234 232 Archive only Population only Setups Both Archive only Population only Setups Both Fig. 8 Makespan of HEA with different individual local search selection schemes for a T1 and b T4 the performance of the HEA. Apart from the original setting of applying local search at TLS = 5, four other settings where local search is applied in every generation and at intervals of TLS = {3, 7, 10} generations, respectively, are used in the test. Thirty simulation runs of each of the five settings were performed and the convergence traces are plotted in Fig. 7a, b. It should be noted that the maximum number of evaluations is maintained at 400 for all simulations, i.e. increasing the frequency of local search reduces the number of generations. From the figures, it can be observed that the convergence speed increases with decreasing TLS . While it is expected that increasing local search frequency will improve convergence speeds, there is always a risk of yielding local optimum solutions due to the lack of sufficient exploration. Nonetheless, we note that a well-designed LSH is capable of achieving schedules within 25% of the optimal solution. By comparing the results achieved by the HEA and the conventional heuristics which will be shown in the Sect. 4.3, it is thus unlikely that the HEA is trapped in a local optimal. This is probably due to the global exploration capability of the HEA. 4.1.2 Effect of individual selection Apart from TLS , another factor that will influence the effectiveness of the local search process is the selection of individuals. In the preceding sections, only archived individuals are exploited by the heuristics. In this section, two other methods of individual selection are investigated. In the second approach, only individuals from the evolving population will undergo local search while random individuals are selected via tournament selection from the archive and evolving population in the third approach. The simulation results are summarized in the form of boxplots in Fig. 8a, b. From the figures, it can be observed that performing local search on archived solutions have an edge as compared to exploiting the evolving population only. On the other hand, the original approach of exploiting the archive only is comparable to the third approach which exploits a selected set of archived and evolving population individuals. The KS-test is also compared and it showed that the only the second method is statistically different from the other methods. 123 C. K. Goh et al. Table 6 Makespan of HEA with and without the various genetic operators for T1 and T4 HEA T1 T4 First quartile 236.5115 440.6800 Median 238.9705 444.2914 Third quartile 241.9287 447.5509 First quartile Crossover only Mutation only Median 236.5379 239.2379 Table 7 Simulation results of LSH, DSH and HEA for the various benchmark problems LSH DSH First quartile HEA Median Third quartile T1 241.2088 238.4844 236.5115 238.9705 241.9287 T2 339.3681 333.3969 313.3463 315.4760 317.0450 442.7701 T3 438.3704 400.8312 368.8242 371.2755 372.9756 445.0349 T4 496.6009 473.6011 440.6800 444.2914 447.5509 Third quartile 243.1408 447.935 T5 301.7023 299.9843 293.0909 295.1409 297.8713 First quartile 238.6333 443.9139 T6 342.1177 340.6002 319.5344 321.5004 323.6641 Median 241.7449 446.3875 T7 350.9543 307.5352 295.8357 298.9078 304.0759 449.0084 T8 322.0563 316.2526 275.6143 281.5325 284.9465 Third quartile 245.8042 The best result in highlighted in bold T9 388.6536 371.4102 337.1911 342.0356 344.8998 T10 454.2243 415.2846 391.3507 395.1606 397.0869 4.2 Effects of genetic operators This section examines the contribution of the specialized genetic operators to the performance of HEA on the problems of T1 and T4. In order to assess the effects of the PE schedule crossover and the mutation operators, simulations for two different setups of HEA are conducted. Specifically, the first setup incorporates only the PE schedule crossover while only the mutation operator is implemented in the second setup. The simulation results are summarized in Table 6. The results indicate a deterioration of algorithmic performance when either the crossover or mutation operator is removed. Nonetheless, it can be observed that the crossover has a greater impact on algorithmic performance indicating the importance of exchanging PE schedules between individuals. The KS-test conducted also showed that HEA is statistically better than HEA with mutation operator only. 4.3 Investigation of other test problems In order to examine the effectiveness of HEA, a comparative study with conventional LSH and duplication scheduling heuristic (DSH) (Kruatrachue and Lewis 1987) is carried out based upon the ten test problems described earlier. LSH has been described earlier in Sect. 2.1. DSH is an instantiation of the LSH with the task duplication described in Sect. 3.5. Specifically, in DSH, parent task are assigned into idle slots whenever possible after all tasks are assigned using LSH. As before, 30 simulation runs are conducted for all test problems and the results are summarized in Table 7. LSH and DSH are deterministic heuristics and only one solution is produced for each problem. As noted before in Sect. 4.1, the effectiveness of task duplication is evident by comparing the performances between LSH and DSH. The difference between the two conventional heuristics becomes even more apparent as the CCR or degree of heterogeneity increases. On the other hand, the 123 HEA outperforms both heuristics for all test problems. With the exception of T1, it can be observed from Table 7 that the third quartile makespan value attained by HEA is much lower as compared to LSH and DSH for the benchmark problems. This also implies that the HEA is capable of evolving good schedules consistently. In order to analyze the impact of the various problem parameters, the performance trend over the different settings is plotted in Fig. 9a, d. In general, increasing the degree of CCR, precedence and task heterogeneity result in higher makespans for all algorithms. Nonetheless, it can be observed that the problem and algorithmic performances have different sensitivities toward these parameters. For instance, total execution time seems to vary almost linearly with CCR and task heterogeneity. As CCR increases beyond a certain threshold, we can expect that solutions which employ fewer PEs or, at least, concentrate the workload on a few core PEs to become more desirable. On the other hand, the initial increment in the degree of precedence relation from 25 to 50% leads to a sharp increase in makespan. This is probably due to the subsequent increase in waiting time before a task can be executed. However, it can be seen from Fig. 9b that such an effect seems to saturate as the degree of precedence is further increased to 75%. Interestingly, we can observe from Fig. 9c that increasing PE heterogeneity actually improves the makespan. This behavior can be attributed to the PEs that can be either very efficient or inefficient with certain tasks. As a result, HEA is able to exploit such a problem characteristic to generate schedules that are much better compared to DSH and LSH. 5 Conclusion Task scheduling in a multiprocessor system is an NP-hard problem that is critical in distinguishing the performance of a A hybrid evolutionary approach for HMPS 500 345 (a) (b) 340 450 335 Makespan Makespan 330 400 350 325 320 315 310 305 300 300 295 250 0.4 0.6 0.8 1 1.2 1.4 1.6 1.8 2 30 CCR 350 40 50 60 70 Degree of Precedence (%) (c) (d) 440 340 420 Makespan Makespan 330 320 310 400 380 360 300 340 290 320 280 30 40 50 60 70 30 Degree of PE Het (%) 40 50 60 70 Degree of Task Het (%) Fig. 9 Performance trend of HEA (open circle), LHS (open inverted triangle) and DHS (open square) for various degrees of a CCR (results for T1, T2, T3 and T4), b precedence (results for T2, T5 and T6), c PE heterogeneity (results for T2, T7 and T8) and d task heterogeneity (results for T2, T9 and T10) multiprocessor system over a single processor system. However, the fact that tasks are located on different PEs mean that additional overheads are incurred. Furthermore, the aim of minimizing time is only a single objective—practical requirements require that other measures of cost are minimized as well. In this article, we proposed a HEA specifically designed to solve the heterogeneous multiprocessor scheduling problem by means of a variable-length chromosome, as well as specialized genetic and local search operators. The starting population is initialized using a random LSH to preserve the precedence relationships between the tasks. The evolutionary process is driven two primary variation operator—a schedule crossover and three variants of the mutation operator— partial exchange, schedule merge, and schedule split; the local search operators on the other hand consists of a partial list scheduling and duplication scheduling approach. In presenting our results based on a fairly extensive simulation study, we showed that, the proposed genetic operators, when coupled with the local search operators performed better than in the case where any one of the operators were omitted. By incorporating the local search operators, particularly duplication local search into the overall proposed algorithm, convergence time, as expected, was shown to decrease. This observation becomes more evident on test sets where the CCR is smaller. References Ahmad I, Kwok YK (1998) Optimal and near-optimal allocation of precedence-constrained tasks to parallel processors: defying the high complexity using effective search techniques. In: Proceedings of 1998 international conference on parallel processing, pp 423–431 Ahmad I, Kwok YK (1998) On exploiting task duplication in parallel program scheduling. IEEE Trans Parallel Distrib Syst 9(9): 872–892 Baskiyar S, Dickinson C (2005) Scheduling directed a-cyclic task graphs on a bounded set of heterogeneous processors using task duplication. J Parallel Distrib Comput 65(8):911–921 Blickle T, Teich J, Thiele L (1996) System level synthesis using evolutionary algorithms, TIK-Report, Nr. 16 Braun TD, Siegel HJ, Beck N, Boloni LL, Maheswaran M, Reuther AI, Robertson JP, Theys MD, Yao B, Hensgen D, Freund RF (2001) 123 C. K. Goh et al. A comparison of eleven static heuristics for mapping a class of independent tasks onto heterogeneous distributed computing systems. J Parallel Distrib Comput 61(6):810–837 Burke EK, Cowling P, De Causmaecker P (2001) A memetic approach to the nurse rostering problem. Appl Intell 15(3):199–214 Coll PE, Ribeiro CC, de Sousa CC (2002) Test instances for scheduling unrelated processors under precedence constraints. http://www-di. inf.pucrio.br/celso/grupo/readme.ps Correa RC, Ferreira A, Rebreyend P (1999) Scheduling multiprocessor tasks with genetic algorithms. IEEE Trans Parallel Distrib Syst 10(8):825–837 Davidovic T, Crainic TG (2003) New benchmarks for static task scheduling on homogenous multiprocessor systems with communication delays, Publication CRT, 2003-04, Centre de Recherche sur les Transports, Universite de Montreal, pp 123–136 Davis L (1991) Handbook of genetic algorithms. Van Nostrand Reinhold, London Dhodi MK, Hielscher EH, Storer RH, Bhasker J (1995) Datapath synthesis using a problem space genetic algorithm. IEEE Trans CAD 14(8):934–944 Eiben AE, Smith JE (2003) Introduction to evolutionary computing. Springer, New York El-Rewini H, Lewis TG, Ali HH (1994) Task scheduling in parallel and distributed systems. Prentice Hall, Englewood Cliffs Franca PM, Mendes A, Moscato P (2001) A memetic algorithm for the total tardiness single machine scheduling problem. Eur J Oper Res 132(1):224–242 Garey MR, Johnson DS (1979) Computers and intractability, a guide to the theory of NP-completeness. W.H. Freeman and Co., San Francisco Hall NG, Posner ME (2001) Generating experimental data for computational testing with machine scheduling applications. Oper Res 49:854–865 Hou ES, Ansari N, Ren H (1994) A genetic algorithm for multiprocessor scheduling. IEEE Trans Parallel Distrib Syst 5(2):113–120 Ishibuchi H, Yoshida T, Murata T (2003) Balance between genetic search and local search in memetic algorithms for multiobjective permutation flowshop scheduling. IEEE Trans Evol Comput 7(2):204–223 Kasahara H, Narita S (1984) Practical multiprocessor scheduling algorithms for efficient parallel processing. IEEE Trans Comput 33(11):1023–1029 Kruatrachue B, Lewis TG (1987) Duplication scheduling heuristic, a new precedence task scheduler for parallel systems, Technical Report 87-60-3, Oregon State University Kwok Y, Ahmad I (1997) Efficient scheduling of arbitrary task graphs to multiprocessors using a parallel genetic algorithm. J Parallel Distrib Comput 47(1):58–77 123 Kwok Y, Ahmad I (1999) Static scheduling algorithms for allocating directed task graphs to multiprocessors. ACM Comput Surv 31(4):406–471 Lewis TG, El-Rewini H (1992) Introduction to parallel computing. Prentice Hall, New York Lim D, Ong YS, Jin Y, Sendhoff B, Lee BS (2007) Efficient hierarchical parallel genetic algorithm using grid computing. In: Future generation computer systems: the international journal of grid computing: theory, methods and applications, pp 658–670 Macey BS, Zomaya AY (1998) A performance evaluation of CP list scheduling heuristics for communication intensive task graphs. In: Proceedings of the joint 12th international parallel processing symposium and ninth symposium on parallel and distributed programming, pp 538–541 Merz P, Freisleben B (2000) Fitness landscape analysis and memetic algorithms for the quadratic assignment problem. IEEE Trans Evol Comput 4(4):337–352 Ong YS, Keane AJ (2004) Meta-Lamarckian learning in memetic algorithms. IEEE Trans Evol Comput 8(2):99–110 Ong YS, Lim MH, Zhu N, Wong KW (2006) Classification of adaptive memetic algorithms: a comparative study. IEEE Trans Syst Man Cybern B 36(1):141–152 Papadimitriou C, Yannakakis M (1990) Toward an architecture independent analysis of parallel algorithms. SIAM J Comput 19: 322–328 Ritchie G, Levine J (2004) A hybrid ant algorithm for scheduling independent jobs in heterogeneous computing environments. In: Proceedings of the 23rd workshop of the UK planning and scheduling special interest group Tang J, Lim MH, Ong YS (2007) Diversity-adaptive parallel memetic algorithm for solving large scale combinatorial optimization problems. Soft Comput 7(9):873–888 Tsuchiya T, Osada T, Kikuno T (1998) Genetic-based multiprocessor scheduling using task duplication. Microprocessors Microsyst 22:197–207 Wu AS, Yu H, Jin S, Lin KC, Schiavone G (2004) An incremental genetic algorithm approach to multiprocessor scheduling. IEEE Trans Parallel Distrib Syst 15(9):824–834 Zhou Z, Ong YS, Lim MH, Lee BS (2007) Memetic algorithm using multi-surrogates for computationally expensive optimization problems. Soft Comput 11(10):957–972 Zhong YW, Yang JG, Qi HN (2004) A hybrid genetic algorithm for task scheduling in heterogeneous computing systems. In: Proceedings of the third international conference on machine learning and cybernetics, pp 2463–2468 Zomaya AY, Ward C, Macey B (1999) Genetic scheduling for parallel processor systems: comparative studies and performance issues. IEEE Trans Parallel Distrib Syst 10(8):795–812
© Copyright 2024