Stefan WAGNER *, Michael AFFENZELLER * HEURISTICLAB GRID A FLEXIBLE AND EXTENSIBLE ENVIRONMENT 1. INTRODUCTION

Similar documents
Effective Optimizer Development for Solving Combinatorial Optimization Problems *

OptLets: A Generic Framework for Solving Arbitrary Optimization Problems *

ON THE BENEFITS OF A DOMAIN-SPECIFIC LANGUAGE FOR MODELING METAHEURISTIC OPTIMIZATION ALGORITHMS

Benefits of Plugin-Based Heuristic Optimization Software Systems

MODELING OF HEURISTIC OPTIMIZATION ALGORITHMS

Local Search Heuristics, Exercises

Algorithm and Experiment Design with HeuristicLab

DeWiz - Modular Debugging for Supercomputers and Computational Grids

A Genetic Algorithm for Multiprocessor Task Scheduling

Meta- Heuristic based Optimization Algorithms: A Comparative Study of Genetic Algorithm and Particle Swarm Optimization

UNICORE Globus: Interoperability of Grid Infrastructures

Accelerating local search algorithms for the travelling salesman problem through the effective use of GPU

Speeding up Evolutionary Algorithms Through Restricted Mutation Operators

GPU Implementation of a Multiobjective Search Algorithm

Towards ParadisEO-MO-GPU: a Framework for GPU-based Local Search Metaheuristics

Constrained Minimum Spanning Tree Algorithms

We are IntechOpen, the world s leading publisher of Open Access books Built by scientists, for scientists. International authors and editors

STATUS UPDATE ON THE INTEGRATION OF SEE-GRID INTO G- SDAM AND FURTHER IMPLEMENTATION SPECIFIC TOPICS

ARTIFICIAL INTELLIGENCE (CSCU9YE ) LECTURE 5: EVOLUTIONARY ALGORITHMS

pals: an Object Oriented Framework for Developing Parallel Cooperative Metaheuristics

EvoloPy: An Open-source Nature-inspired Optimization Framework in Python

Advances in Metaheuristics on GPU

Lecture 1: January 22

Lecture 1: January 23

Solving the Traveling Salesman Problem using Reinforced Ant Colony Optimization techniques

Framework for replica selection in fault-tolerant distributed systems

International Journal of Current Trends in Engineering & Technology Volume: 02, Issue: 01 (JAN-FAB 2016)

HETEROGENEOUS COMPUTING

Fuzzy Inspired Hybrid Genetic Approach to Optimize Travelling Salesman Problem

Intelligent IO-Terminals for complex Communication Scenarios in Control Applications

OmniRPC: a Grid RPC facility for Cluster and Global Computing in OpenMP

ENHANCED BEE COLONY ALGORITHM FOR SOLVING TRAVELLING SALESPERSON PROBLEM

Using ɛ-dominance for Hidden and Degenerated Pareto-Fronts

OPAX - An Open Peer-to-Peer Architecture for XML Message Exchange

GA is the most popular population based heuristic algorithm since it was developed by Holland in 1975 [1]. This algorithm runs faster and requires les

A Grid-Enabled Component Container for CORBA Lightweight Components

Evolution of XML Applications

Metaheuristic Development Methodology. Fall 2009 Instructor: Dr. Masoud Yaghini

LOW AND HIGH LEVEL HYBRIDIZATION OF ANT COLONY SYSTEM AND GENETIC ALGORITHM FOR JOB SCHEDULING IN GRID COMPUTING

Introduction to and calibration of a conceptual LUTI model based on neural networks

IMPLEMENTATION OF A FIXING STRATEGY AND PARALLELIZATION IN A RECENT GLOBAL OPTIMIZATION METHOD

1.1 Jadex - Engineering Goal-Oriented Agents

An Eclipse-based Environment for Programming and Using Service-Oriented Grid

Towards Generating Domain-Specific Model Editors with Complex Editing Commands

Search-Based Software Engineering: 7th International Symposium, SSBSE 2015, Bergamo, Italy, September 5-7, 2015, Proceedings (Lecture Notes In

ACO and other (meta)heuristics for CO

An Architecture For Computational Grids Based On Proxy Servers

Scaling-Out with Oracle Grid Computing on Dell Hardware

Towards Reusable Heterogeneous Data-Centric Disentangled Parts

A Component Framework for HPC Applications

THE GLOBUS PROJECT. White Paper. GridFTP. Universal Data Transfer for the Grid

In cloud computing, IaaS approach is to

Solving Traveling Salesman Problem on High Performance Computing using Message Passing Interface

Stability Assessment of Electric Power Systems using Growing Neural Gas and Self-Organizing Maps

Modularity for Genetic Programming. Anil Kumar Saini PhD Student CICS, UMass Amherst

A Time-To-Live Based Reservation Algorithm on Fully Decentralized Resource Discovery in Grid Computing

International Journal of Current Research and Modern Education (IJCRME) ISSN (Online): & Impact Factor: Special Issue, NCFTCCPS -

Combining Two Local Searches with Crossover: An Efficient Hybrid Algorithm for the Traveling Salesman Problem

Ant Colony Optimization for dynamic Traveling Salesman Problems

A Binary Model on the Basis of Cuckoo Search Algorithm in Order to Solve the Problem of Knapsack 1-0

Recombination of Similar Parents in EMO Algorithms

Machine Learning for Software Engineering

Improving the Wang and Mendel s Fuzzy Rule Learning Method by Inducing Cooperation Among Rules 1

Proceedings of the 6th Educators Symposium: Software Modeling in Education at MODELS 2010 (EduSymp 2010)

A Lightweight Language for Software Product Lines Architecture Description

Machine Learning Techniques for the Smart Grid Modeling of Solar Energy using AI

A Comparative Study on Nature Inspired Algorithms with Firefly Algorithm

Universal Communication Component on Symbian Series60 Platform

A heuristic approach to find the global optimum of function

Parallel Evaluation of Hopfield Neural Networks

Solving the Euclidean Bounded Diameter Minimum Spanning Tree Problem by Clustering-Based (Meta-)Heuristics

Monitoring the Usage of the ZEUS Analysis Grid

Discrete Optimization. Lecture Notes 2

ISSN: [Keswani* et al., 7(1): January, 2018] Impact Factor: 4.116

A MONTE CARLO ROLLOUT ALGORITHM FOR STOCK CONTROL

Framework for Preventing Deadlock : A Resource Co-allocation Issue in Grid Environment

Probability Control Functions Settings in Continual Evolution Algorithm

A Translation Framework for Automatic Translation of Annotated LLVM IR into OpenCL Kernel Function

Design of a Flexible Integration Interface for PIL Tests

An Ant Approach to the Flow Shop Problem

Computational Intelligence Applied on Cryptology: a Brief Review

Dynamically Configured λ-opt Heuristics for Bus Scheduling

A SWARMED GA ALGORITHM FOR SOLVING TRAVELLING SALESMAN PROBLEM

Effects of Constant Optimization by Nonlinear Least Squares Minimization in Symbolic Regression

DiPerF: automated DIstributed PERformance testing Framework

Middleware for Ubiquitous Computing

Particle Swarm Optimization Approach with Parameter-wise Hill-climbing Heuristic for Task Allocation of Workflow Applications on the Cloud

Population-Based Simulated Annealing for Traveling Tournaments

Ant Algorithms for the University Course Timetabling Problem with Regard to the State-of-the-Art

SOLVING THE JOB-SHOP SCHEDULING PROBLEM WITH A SIMPLE GENETIC ALGORITHM

Ylvi - Multimedia-izing the Semantic Wiki

A Scalable Location Aware Service Platform for Mobile Applications Based on Java RMI

AOSA - Betriebssystemkomponenten und der Aspektmoderatoransatz

Using Penalties instead of Rewards: Solving OCST Problems with Problem-Specific Guided Local Search

Recovery of Design Pattern from source code

WebFlow - High-Level Programming Environment and Visual Authoring Toolkit for High Performance Distributed Computing

Scheduling Meta-tasks in Distributed Heterogeneous Computing Systems: A Meta-Heuristic Particle Swarm Optimization Approach

A combination of clustering algorithms with Ant Colony Optimization for large clustered Euclidean Travelling Salesman Problem

AsmetaA: Animator for Abstract State Machines

International Conference on Modeling and SimulationCoimbatore, August 2007

Transcription:

heuristic optimization, distributed computation, optimization frameworks Stefan WAGNER *, Michael AFFENZELLER * HEURISTICLAB GRID A FLEXIBLE AND EXTENSIBLE ENVIRONMENT FOR PARALLEL HEURISTIC OPTIMIZATION Heuristic optimization techniques turned out to be very well suited for attacking various kinds of problems. However, when it comes to practical applications like scheduling problems, route planning, etc. also these algorithms still suffer from a very long running time mainly due to the rather large problem instances relevant in real world applications. Consequently parallel optimization methods like parallel Genetic Algorithms are widely used to overcome this handicap. In this paper the authors present a new environment for parallel heuristic optimization based upon the already proposed HeuristicLab. In contrast to other existing grid computing or parallel optimization projects, HeuristicLab Grid offers the possibility of rapid and easy use of existing optimization algorithms and problems in a parallel way without the need of complex installation and maintenance. 1. INTRODUCTION Heuristic optimization techniques inspired by nature like Genetic Algorithms, Evolution Strategies, Particle Swarm Optimization, or Simulated Annealing are very frequently used to solve standardized benchmark problems, for instance routing problems (Traveling Salesman Problem, Capacitated Vehicle Routing Problem), scheduling problems (Job Shop Scheduling Problem, Multiprocessor Scheduling Problem) or function optimization problems (n-dimensional real-valued test functions). However, when it comes to practical applications all these algorithms still suffer from a very long runtime. Due to the high dimensionality of practically relevant problems, either more complex algorithms or many simultaneous runs are needed to achieve an acceptable solution quality. To overcome these runtime difficulties parallel computer systems and consequently also parallel optimization algorithms are often used not only for testing but especially for practical implementations. Thereby the concept of cluster or grid computing is widely used, as the idea of using standard desktop computers which are normally not used to their full * Institute of Systems Theory and Simulation Johannes Kepler University, Altenbergerstrasse 69, A-4040 Linz, Austria {sw,ma}@cast.uni-linz.ac.at

capacity is economically very interesting. However, generic grid computing projects like the Globus project [8] are still under heavy development and also provide much more functionality than needed for most parallel heuristic optimization tasks. Consequently the effort needed to set up such a computing environment and to keep it running is enormous. On the other hand existing libraries for (parallel) heuristic optimization like EO [10], JDEAL [6], Distributed BEAGLE [9], the DREAM project [3], Easylocal++ [7] or Localizer++ [11] mainly focus on a specific kind of optimization paradigm like Evolutionary Computation or Local Search strategies and often support parallelism and distributed computation in a rather insufficient way. Only a few parallel optimization frameworks ParadiseEO [5] is probably the most developed of all are able to deal with different kinds of optimization paradigms and also with various parallel computation architectures. However, this amount of flexibility has a high price: like pure grid computing environments also ParadisEO is rather complex to install, use and maintain. In this paper we are going to describe another approach. Inspired by the SETI@home project [2] we have developed a flexible and extensible environment for parallel heuristic optimization named HeuristicLab Grid. The main idea of HeuristicLab Grid is to use a modular thin client on the one hand that is installed as a service on the nodes contributing to the grid and on the other hand a central database server that is responsible for the distribution of jobs, the storage of results and for management tasks. The client is build upon the already proposed HeuristicLab environment [12] and is therefore able to use the same algorithm and problem plug-ins. Consequently it is very easy to adapt already implemented sequential optimization algorithms in order to use them in the parallel environment or to execute many test runs simultaneously. Furthermore, a sophisticated update mechanism makes it possible to remotely distribute newly developed algorithms and problem instances among the clients. In this contribution we will describe the main idea of HeuristicLab Grid in detail and take a closer look at the architecture (chapter 2), the implementation of the central database (chapter 3), the functionality of the update mechanism (chapter 4), and further implementation goals (chapter 5). 2. THE HEURISTICLAB GRID ARCHITECTURE HeuristicLab Grid is build upon the already existing HeuristicLab optimization environment [12]. HeuristicLab is an extensible, flexible and paradigm-independent environment designed for rapid prototyping of new optimization algorithms and problems. Due to its plug-in architecture and the generic operator concept HeuristicLab offers the opportunity to implement an optimization algorithm just once and to attack various problem instances with it and vice versa. Many different algorithms and problems have already been realized within the HeuristicLab framework (among them Genetic Algorithms, Genetic Programming, Evolution Strategies, Particle Swarm Optimization, Ant Colony Optimization, Tabu Search, Traveling Salesman Problem, Multiprocessor Scheduling, Job

Shop Scheduling, n-dimensional Test Functions) and it consequently seems to be the next step to enhance HeuristicLab with parallel computing features. The main idea behind HeuristicLab Grid was to extend the HeuristicLab framework in a way inspired by grid computing. Due to the increasing number of PCs connected in LANs or WANs and also due to the steadily increasing computational power of these machines cluster and moreover grid computing approaches clearly outperform existing parallel supercomputers concerning availability and running costs. However, existing generic grid computing projects like the Globus project [8] have to take care of many different aspects like security, fair resource sharing, synchronization, job management, access to shared objects, multiple user interfaces, etc. and therefore provide much more functionality than needed for parallel optimization applications. In heuristic optimization usually many very similar and rather independent tasks have to be performed and communication between these tasks only takes place at certain designated times. Therefore the SETI@home project [2] is much closer related and acted as an archetype for our parallel optimization environment. HeuristicLab Grid Front Ends Application Front End Web Front End HeuristicLab Grid Servers Web s Database Server Web Server Grid Update Grid Update Grid Update Client Client Client HeuristicLab Grid Clients Fig. 1. HeuristicLab Grid Architecture

Analog to SETI@home a client is installed on each computer participating in the HeuristicLab Grid that runs with very low process priority in order to handicap the user as less as possible. This client fetches jobs from a central database server, processes it and writes the desired results back into the database. Then the calculated results can be further processed by any other client and can e.g. be used to generate new jobs which will then again be processed by some other client. In that way no direct connection between the clients is necessary as all communication is done via the database. Consequently the complexity and the error-proneness of the client are drastically reduced and the client can be kept very slim. However, as each client utilizes the already existing HeuristicLab plug-in architecture there arises the problem that newly developed algorithm and problem plug-ins resp. problem instances have to be distributed among the clients in order to keep them up to date. Therefore, each client consists not only of the Grid which fetches new jobs, initializes and starts the calculation and stores the results, but also of the Update used to download new plug-ins from a particular web server. More details on the basic functioning of this Update can be found in chapter 4. Besides these slim clients which are implemented in C# realized as Microsoft Windows services, HeuristicLab Grid also uses web services to offer a uniform and generally accessible interface which can be used to build all different kinds of user interfaces. These web services encapsulate the whole management tasks like starting and stopping nodes, assigning priority values, querying status messages and exceptions, or managing update commands. The whole HeuristicLab Grid architecture is shown as a block diagram in Figure 1. 3. THE DESIGN OF THE CENTRAL DATABASE As it can be seen in the architecture chart, the central database plays an important role in HeuristicLab Grid. Therefore, the design of its tables and the logic behind the database are further outlined in this chapter. SGA Jobs SGA_Results PK Id Job Rounds UseSpecificRandomSeed RandomSeed GenerateLog PopulationSize MutationRate Elitism SelectionOperator TournamentGroupSize CrossoverOperator MutationOperator Group Algorithm Problem Priority Job RandomSeed Best Difference Round SolutionCount Fig. 2. Schema of the Jobs Table and the Corresponding Parameters and Results Table of the SGA Plug-In

The most important task of the database is the storage of jobs and results. Each job has a unique id and is represented by an entry in the Jobs table. This table also contains basic job data which is a node group id, the corresponding algorithm plug-in and problem instance and a priority value. As each algorithm requires certain parameters, a plug-in specific table is necessary to hold these additional parameters for each job. Additionally, as each algorithm may produce different relevant result values, also an algorithm-specific table for the calculated results is needed. In Figure 2 the schema of the Jobs table and the particular parameters and results tables for the SGA plug-in (i.e. Standard Genetic Algorithm) are shown and it can be seen that each entry of the parameters and results table is explicitly associated with a job by the job's id. Furthermore, the database has to fulfill management tasks. Each node participating in the HeuristicLab Grid is represented by an entry in the s table storing its id, name, description and status (active, inactive). For better organization nodes can be arranged in groups where each node group is listed in the Groups table and the m:n-relationship between nodes and groups is realized by the GroupsMembers table. By changing the status value in the sstatus table each node can be activated, paused or deactivated. So it is possible to use some nodes for example only during the night, if they are needed for other tasks in the day. For monitoring and debugging reasons the database also contains two tables to store exceptions resp. status messages. Finally there is the CurrentJobs table which realizes the interconnection between nodes and jobs. In this table the starting and ending time of each job is recorded and a status string indicates whether the job is currently processed, finished or aborted. Figure 3 shows the schema of these management classes. UpdateCommandsStatus sstatus FK2 Command Exceptions Status Message UpdateCommands PK Id PK Groups Id PK Jobs Id FK2 Job Date Assembly Exception Message StackTrace PK s Id StatusMessages Group Action File Parameters Name Description Group Algorithm Problem Priority CurrentJobs Status Name Description Date Message GroupsMembers FK2 Job Start End Status FK2 Group Fig. 3. Schema of the HeuristicLab Grid Management Tables

4. THE UPDATE MECHANISM As already described in chapter 2, HeuristicLab Grid uses the same plug-in architecture as the already proposed HeuristicLab optimization environment. Thereby optimization algorithms and problems are realized as independent assemblies which can be linked with each other on demand at runtime. Consequently if a new optimization algorithm or problem has been implemented and is planned to be used in the HeuristicLab Grid, the corresponding plug-in assembly has to be available on each grid node. So a distribution mechanism is needed to download, install or uninstall plug-ins. This task is done by the second part of each HeuristicLab Grid client namely the Update. Each update command is stored in the UpdateCommands table with its id, the relevant node group, an action string (i.e. install, delete, etc.), the location of the plug-in on the target system and some optional parameters. The Update of each client queries the database in regular intervals to check if there are some new update commands. If there are some, the Updates stops the Grid and executes them by e.g. downloading the new plug-in from a password secured area on a central web server and installing it. Then it restarts the Grid which can subsequently use the newly installed assemblies. The m:n-relationship between update commands and nodes is realized by the UpdateCommandsStatus table storing which commands have already been executed by which nodes. 5. CONCLUSION, FURTHER GOALS AND OUTLOOK In this paper the new HeuristicLab Grid environment is introduced that enhances the existing HeuristicLab optimization environment by means of distributed computation. Thereby the utilization of the HeuristicLab plug-in architecture makes it possible to reuse already implemented sequential algorithms in a parallel way resp. to quickly develop new parallel optimization algorithms. In contrast to existing parallel optimization environments it is remarkable that HeuristicLab Grid is not limited to a specific optimization paradigm (like Evolutionary Computation, etc.). However, due to its central management and the generic web service interface it is much easier to set up and to maintain than existing generic grid computing environments. HeuristicLab Grid has already proven its potential not only for executing numerous test cases for the analysis of newly developed algorithms but also for solving high dimensional combinatorial optimization problems in a parallel way. Furthermore, HeuristicLab Grid has also already been used in practical applications, namely the identification of nonlinear model structures [13] as well as the optimization of the production planning in a real-world manufacturing environment [4]. At the moment HeuristicLab Grid is working with approx. 30 clients and it is planned to expand the number of nodes during the next months by another 20 to 30 computers.

In the near future it is planned to integrate some more parallel heuristic optimization algorithms like the recently proposed SASEGASA [1]. Apart from this it is also planned to start a new project dedicated to a common problem concerning heuristic optimization: the adjustment of parameter values. Therefore a specially adapted Evolution Strategy should be used to optimize the parameters of arbitrary optimization algorithms. Due to the very high computational effort required by this project (just imagine that every individual of the Evolution Strategy represents the whole execution of another algorithm) we also expect HeuristicLab Grid to be very useful. REFERENCES [1] AFFENZELLER M. and WAGNER S., SASEGASA: A New Generic Parallel Evolutionary Algorithm for Achieving Highest Quality Results, Journal of Heuristics Special Issue on New Advances on Parallel Meta-Heuristics for Complex Problems, Vol. 10, pp. 239-263, Kluwer Academic Publishers, 2004. [2] ANDERSON D.P. et al., SETI@home: An Experiment in Public-Resource Computing, Commun. ACM, Vol. 45, No. 11, pp. 56-61, 2002. [3] ARENAS M.G. et al., A Framework for Distributed Evolutionary Algorithms, Parallel Problem Solving from Nature (PPSN VII), Lecture Notes in Computer Science, Vol. 2439, pp. 665-675, Springer-Verlag, 2002. [4] BRAUNE R. et al., Applying Genetic Algorithms to the Optimization of Production Planning in a Real-World Manufacturing Environment, Cybernetics and Systems 2004, pp. 41-46, Austrian Society for Cybernetic Studies, 2004. [5] CAHON S. et al., ParadisEO: A Framework for the Reusable Design of Parallel and Distributed Metaheuristics, Journal of Heuristics Special Issue on New Advances on Parallel Meta-Heuristics for Complex Problems, Vol. 10, pp. 357-380, Kluwer Academic Publishers, 2004. [6] COSTA J. et al., JDEAL: The Java Distributed Evolutionary Algorithms Library, http://laseeb.isr.ist.utl.pr/sw/jdeal, 1999. [7] DI GASPERO L. and SCHÄRF A., Easylocal++: An Object-Oriented Framework for the Design of Local Search Algorithms and Metaheuristics, MIC'2001 4 th Metaheuristics International Conference, pp. 287-292, 2001. [8] FOSTER I. and KESSELMAN C., Globus: A Metacomputing Infrastructure Toolkit, International Journal of Supercomputer Applications, Vol. 11, No. 2, pp. 115-128, 1997. [9] GAGNÉ C. et al., Distributed BEAGLE: An Environment for Parallel and Distributed Evolutionary Computations, Proceedings of the 17 th Annual International Symposium on High Performance Computing Systems and Applications (HPCS), 2003. [10] KEIJZER M. et al., Evolving Objects: A General Purpose Evolutionary Computation Library, Proceedings of the 5 th International Conference on Evolutionary Algorithms (EA 01), 2001.

[11] MICHEL L. and VAN HENTENRYCK P., Localizer++: An Open Library for Local Search, Technical Report CS-01-02, Brown University, Computer Science, 2001. [12] WAGNER S. and AFFENZELLER M., HeuristicLab A Generic and Extensible Optimization Environment, To be published in: Proceedings of IBERAMIA 2004, 2004. [13] WINKLER S. et al., Identifying Nonlinear Structures Using Genetic Programming Techniques, Cybernetics and Systems 2004, pp. 689-694, Austrian Society for Cybernetic Studies, 2004.