11 research outputs found

    Design and evaluation of a tabu search method for job scheduling in distributed enviorments

    Get PDF
    The efficient allocation of jobs to grid resources is indispensable for high performance grid-based applications. The scheduling problem is computationally hard even when there are no dependencies among jobs. Thus, we present in this paper a new tabu search (TS) algorithm for the problem of batch job scheduling on computational grids. We consider the job scheduling as a bi-objective optimization problem consisting of the minimization of the makespan and flowtime. The bi-objectivity is tackled through a hierarchic approach in which makespan is considered a primary objective and flowtime a secondary one. An extensive experimental study has been first conducted in order to fine-tune the parameters of our TS algorithm. Then, our tuned TS is compared versus two well known TS algorithms in the literature (one of them is hybridized with an ant colony optimization algorithm) for the problem. The computational results show that our TS implementation clearly outperforms the compared algorithms. Finally, we evaluated the performance of our TS algorithm on a new set of instances that better fits with the concept of computational grid. These instances are composed of a higher number of -heterogeneous- machines (up to 256) and emulate the dynamic behavior of these systems.Peer ReviewedPostprint (published version

    A Genetic Algorithm for Multiobjective Hard Scheduling Optimization

    Get PDF
    This paper proposes a genetic algorithm for multiobjective scheduling optimization based in the object oriented design with constrains on delivery times, process precedence and resource availability. Initially, the programming algorithm (PA) was designed and implemented, taking into account all constraints mentioned. This algorithm’s main objective is, given a sequence of production orders, products and processes, calculate its total programming cost and time. Once the programming algorithm was defined, the genetic algorithm (GA) was developed for minimizing two objectives: delivery times and total programming cost. The stages defined for this algorithm were: selection, crossover and mutation. During the first stage, the individuals composing the next generation are selected using a strong dominance test. Given the strong restrictions on the model, the crossover stage utilizes a process level structure (PLS) where processes are grouped by its levels in the product tree. Finally during the mutation stage, the solutions are modified in two different ways (selected in a random fashion): changing the selection of the resources of one process and organizing the processes by its execution time by level. In order to obtain more variability in the found solutions, the production orders and the products are organized with activity planning rules such as EDD, SPT and LPT. For each level of processes, the processes are organized by its processing time from lower to higher (PLU), from higher to lower (PUL), randomly (PR), and by local search (LS). As strategies for local search, three algorithms were implemented: Tabu Search (TS), Simulated Annealing (SA) and Exchange Deterministic Algorithm (EDA). The purpose of the local search is to organize the processes in such a way that minimizes the total execution time of the level. Finally, Pareto fronts are used to show the obtained results of applying each of the specified strategies. Results are analyzed and compared

    Generic parallel implementations for Tabu Search

    Get PDF
    Tabu Search (TS) is a meta-heuristic for solving combinatorial optimization problems. A review of existing implementations for TS reveals that, on the one hand, these implementations are ad hoc and, on the other hand, most of them run in a sequential setting. Indeed, the reported parallel implementations are few as compared to the sequential implementations. Due to increase in computing resources, especially in LAN environments, it is quite desirable to obtain parallel implementations of TS for solving problems arising in fields others than computer science, such as biology, control theory, etc., in which researchers and practitioners are less familiar with parallel programming. In this work we present a generic implementation of TS able to be run in sequential and parallel settings. The key point in our approach is the design and implementation in C++ of an algorithmic skeleton for TS embedding its main flow as well as several parallel implementations for the method. This is achieved through a separation of concerns: elements related to TS are provided by the skeleton, whereas the problem-dependent elements are expected to be provided by the user according to a fixed interface using purely sequential constructs. Thus, the skeleton has a unique interface but is expected to have many instantiations for concrete problems, all of them being able to run in a straightforward way using different parallel implementations. In order to assess the effectiveness of our approach, we have applied it to several NP-hard combinatorial optimization problems. We have considered developing time, flexibility and easiness of use, quality of solutions and computation efficiency. We have observed that our approach allows fast developing of problem instantiations. Moreover, the skeleton allows the user to configure and implement in different ways internal methods related to TS. Furthermore, the results obtained by our generic parallel implementations are efficient and report good quality results compared to the ones reported by ad hoc implementations. We exemplify our approach through the application to the 0-1 Multidimensional Knapsack problem. The experimental results obtained for standard benchmarks of this problem show that, in spite of the genericity and flexibility of our implementation, the resulting program provides high quality solutions very close to the optimal ones.Postprint (published version

    ParadisEO: A Framework for the Reusable Design of Parallel and Distributed Metaheuristics

    Full text link

    Parallel skeletons for tabu search method

    No full text

    Parallel skeletons for tabu search method

    No full text
    In this paper we present two parallel skeltons for Tabu Search method --a well known meta-heuristic designed for finding approximate solution of combinatorial optimization problems. Our parallel skeletons are designed and implemented using the generic parallel programming paradigm. The first skeleton is based on independent runs while the second in the classical master-slave model. Our starting point is the design and implementation of a sequential skeleton that is used later as basis for the two parallel skeletons. Both skeletons provide the user with the followings: (a) permit to obtain parallel implementations of tabu search method for concrete combinatorial optimization problems from existing sequential implementations; (b) there is no need for the user to know neither parallel programming nor communication libraries; (c) the parallel implementation for a concrete problem is obtained automatically from a sequential implementation of the problem. The skeletons, however, require from the user a sequential instantiation of tabu search method for the problem at hand. The skeletons are implemented in C++ using MPI as a communication library and offer several properties such as a genericity, flexibility, component reuse, robustness and time savings, mainly due to the generic programming and object oriented programming paradigms. We have instantiated the two skeletons for the 0-1 Multidimensional Knapsack problem and have observed the claimed properties of the skeleton

    Parallel skeletons for Tabu search method

    No full text
    We present two generic parallel skeletons for the tabu search method-a well known meta-heuristic for approximately solving combinatorial optimization problems. The first skeleton is based on independent runs while the second in the classical master-slave model. Our starting point is the design and implementation of a sequential skeleton that is used later as basis for the two parallel skeletons. Both skeletons provide the user with the following: a permit to obtain parallel implementations of the tabu search method for concrete combinatorial optimization problems from existing sequential implementations; there is no need for the user to know either parallel programming or communication libraries; and the parallel implementation of tabu search for a concrete problem is obtained automatically from a sequential implementation of tabu search for the problem. The skeletons, however, require from the user a sequential instantiation of the tabu search method for the problem at hand. The skeletons are implemented in C++ using MPI as the communication library and offer genericity, flexibility, component reuse, robustness and time savings. We have instantiated the two skeletons for the 0-1 multidimensional knapsack problem, among others, for which we report computational results.Peer Reviewe

    Parallel skeletons for tabu search method based on search strategies and neighborhood partition

    No full text
    In this paper we present two parallel skeletons for Tabu Search method -- a well known meta-heuristic for approximately solving combinatorial optimization problems. Our parallel skeletons are designed and implemented using the generic parallel programming paradigm. The first skeleton is based on independent runs model with search strategies while the second is a master-slave model with neighborhood partition. Our starting point to obtain these skeletons was the design and implementation of a sequential skeleton that was used later as basis for the two parallel skeletons. Both skeletons provide the user with the followings: (a) permit to obtain parallel implementations of tabu search method for concrete combinatorial optimization problems from existing sequential implementations; (b) there is no need for the user to know neither parallel programming nor communication libraries; (c) the parallel implementation for a concrete problem is obtained automatically from the existing sequential implementation of the problem. The skeletons are implemented in C++ using MPI as a communication library and offer several properties such as a genericity, flexibility, component reuse, robustness and time savings, mainly due to the generic and object oriented programming paradigms. We have instantiated the two skeletons for the 0-1 Multidimensional Knapsack problem and report extensive experimental results.Postprint (published version
    corecore