Applying Design Patterns in Distributing a Genetic Algorithm Application

Size: px
Start display at page:

Download "Applying Design Patterns in Distributing a Genetic Algorithm Application"

Transcription

1 Applying Design Patterns in Distributing a Genetic Algorithm Application Nick Burns Mike Bradley Mei-Ling L. Liu California Polytechnic State University Computer Science Department San Luis Obispo, CA Abstract --This paper describes an experiment that employs an incremental approach to distribute a genetic algorithm application. The incremental approach allows the application to be initially developed for a standalone system, and then extended to run on multiple systems concurrently. For the extension, design patterns are employed wherever appropriate. The use of design patterns in the experiment is described, and the outcome of the experiment, including quantitative measurements, is presented. Keywords: design patterns, distributed system, genetic algorithms, Robocode, GALib. 1. Background A genetic algorithm (GA) [1] is a problem solving method inspired by Darwin s theory of evolution: a problem is solved by an evolutionary process resulting in a best (fittest) solution (survivor). In a GA application, many individuals derive, independently and concurrently, competing solutions to a problem. These solutions are then evaluated for fitness and individuals survive and reproduce based upon their fitness. Eventually, the best solutions emerge after generations of evolution. The flow of a typical GA simulation is as follows: First, a GA server creates many individuals randomly. Each of these individuals is tested for fitness. Based on their fitness, measured by a fitness function that quantifies the optimality of a solution, the server selects a percentage of the individuals that are allowed to crossover with each other, analogous to gene sharing through reproduction in biological organisms. The crossover between two parents produces offspring, which have a chance of being randomly mutated. A child thus produced is then placed into the population for the next generation, in which it will be evaluated for fitness. The process of selection, crossover, and mutation repeats until the new population is full and the new generation repeats the behavior of the previous generation. After many generations, the individuals are expected to become more adept at solving the problem to which the GA is being applied. In order for a GA simulation to work well, there needs to be a significant number of individuals within a population, and the simulation needs to be allowed to run for many generations. Furthermore, the simulation will typically need to be run repeatedly while parameters -- such as mutation rate, population size, crossover functions are tuned. Thus, a successful GA simulation requires the calculation of the fitness function thousands of times or more. It is therefore critical that the function that performs the calculation of the fitness, called the fitness function, can be executed as speedily as possible. When a GA simulation is limited to run on a single computer, the GA server is responsible for spawning the individuals as well as calculating the fitness functions of the myriad individuals,

2 resulting in typically very lengthy runs. Our project, DistributedGALibRobocode, is an attempt to distribute the computations of the fitness functions, so that the GA server parcels out the computations to clients running on other computers, thereby accelerating the simulation run. 2. The DistributedGALibRobocode Project Java GALib is a Genetic Algorithms Library for Java [4]. Robocode is an easy-to-use robotics battle simulator developed by IBM [5]. Robocode provides an environment in which automated robot tanks, or bots, created by programmers, can compete against each other. The GALibRobocode, originally developed at Cal Poly as a class project, is a system that combines the Java GALib and Robocode to use genetic algorithm to eliminate inferior bots. A standalone version of GALibRobocode, running on a single computer, required 24 hours to complete a relatively simple run for 30 generations with 100 individuals. Our experiment extends the GALibRobocode to a distributed version, termed DistributedGALibRobocode. In the experiment, we applied an incremental approach to create the distributed system in these steps: 1. Build a working GALibRobocode application that runs on a single computer. 2. Partition the GALibRobocode application into a server and a client where the server is responsible for managing the generations of individuals and the client is responsible for computing the fitness functions. 3. Extend the application to distribute multiple clients, so that the clients run independently on separate systems. Each client interacts with the server to compute fitness functions at the request of the servers. 4. Add provisions for fault tolerance to the application. 3. Challenges for the Project Although the underlying concept is simple, DistributedGALibRobocode raises a number of software engineering challenges, described below. Synchronization and Concurrency control: GALib keeps track of all individuals of each generation and their fitness values in a set of arrays. In the standalone version, the computations of the fitness values are performed serially by the server alone. In the distributed version, the computations are performed and returned to the server by the clients concurrently. Synchronization and concurrency control are required whenever a single data object is updated by multiple sources concurrently. Performance: The main objective of distributing the computations of the fitness functions is to improve the performance of the GA simulation. Ideally, the runtime would improve linearly, so that the runtime of the standalone GALib will be shortened by n times when distributed to n systems. However, the performance gain is not expected to be linear, due to factors such as network latency and load balancing. The design of DistributedGaLiRobocode should optimize the performance gained through concurrency. Reliability: Whereas the distribution of the application is expected to result in performance gain, the tradeoff is that DistributedGALibRobocode will be less reliable than the standalone

3 version, due to the possibility of partial failures. Therefore, fault tolerance measures must be provided so that a GA simulation run can carry on in spite of client failures. 4. Employing Design Patterns One of the objectives of the experiment is to apply design patterns in the incremental development of DistributedGALibRobocode, specifically to the task of extending the standalone GALibRobocode to its distributed version. A design pattern is a particular form of recording design information such that designs which have worked well in particular situations can be applied again in similar situations in the future by others. [2] Design patterns are widely accepted in object-oriented software design, and collections of such patterns can be found in numerous publications [3, 4]. Some of the patterns employed in the design of DistributedGALibRobocode are described below. A key design pattern used for extending GALibRobocode to its distributed version is the Half-Sync / Half-Async pattern [4], a pattern for handling client/server connectivity and job delegation/scheduling. The pattern is employed to decouple asynchronous and synchronous service processing by introducing two intercommunicating layers, one for asynchronous processing, and the other one for synchronous processing. This pattern works well with GALib s client-server design. The client/server portion is the asynchronous part, while the GALib processing is the synchronous part: GALib processing cannot be asynchronous because a generation must be complete before the algorithm can proceed to the next generation. The pattern also supports the fault tolerance needed for the application: whenever a client is detected to have failed, the server returns the job assigned to the failed client to the JobQueue, thereby allowing another client to take up the work and keep the server running. The adoption of the pattern allows for more flexibility in the rendezvous of the client and server, and results in efficient and fast client-server interaction.. Another design pattern, the Thread per Connection model [4], is applied to the interaction between the clients and the server. For each client, the server spawns a separate ServerThread dedicated to interacting with the client. The class diagram presented in Figure 1 illustrates the design of the client and the server. Figure 1: Class Diagram of Server related classes

4 The Composite design pattern [3] was employed to batch the jobs sent from the server to clients. Jobs for computing fitness functions are grouped in a vector in an object sent to each client; the number of jobs placed in each request is based on the number of clients connected to the server. This clumping of jobs helps to reduce the communication overhead between the server and the clients. The composite design also allows load balancing among the clients. For example, jobs could be distributed by the server based on client speeds in addition to the count of clients. Figure 2 presents the class diagram of the classes Job and Jobs. Figure 2: Class Diagram of Job and Jobs Another design pattern, the Singleton[3], was employed in the design of the client to guarantee that a single instance of the Robocode will be created. The creation of a Robocode instance, which loads all of the bots and initializes the environment, takes a considerable amount of time. The Asynchronous Completion Token [4] design pattern was incorporated in the GAJob class: a completion token is used by a client to return the result of each job. Each GAJob object contains the location in the fitness array (on the server side) where the result of a fitness function is to be placed. Thus, when a job is completed, the server receives from the client a completion token and knows exactly where to put the fitness value in the fitness array. Figure 3 illustrates the class diagram of GAJob. Figure 3: Class Diagram of GAJob and GAFloatMinRoboJob The basic interactions of these classes are illustrated in Figure 4. An external source, i.e., GALib, fills the JobQueue with Jobs. Then ServerThreads dequeue jobs from the JobQueue

5 and dispatch them to the clients. When completed, a job is placed in a Result object and sent back by the client to a ServerThread. Each client connects to the ServerListener and a ServerThread is created to handle the interaction with each client. Concurrent access to the JobQueue and Results are handled with Java synchronized blocks: access to GALib s fitness array is serialized. GALib s requirement of a full complete fitness array to start a new generation is handled by simply checking when the JobQueue has become empty. When the JobQueue is empty, all jobs for fitness computations have been completed and it is then time for the next generation to start. The detection of completion is done by using Java wait and notify on JobQueue. Figure 4: Interaction Diagram 5. Incremental implementation A main objective of the experiment is to put to test the applicability of the incremental approach whereby a distributed system is developed by (i) building a standalone version of the system, then (ii) modifying the system so that the functionalities are distributed. First, we developed the fitness function for Robocode for use with GALib. Then we developed a standalone version of GALibRobocode. After the standalone version had been tested to our satisfaction, we focused on making GALibRobocode distributed. A generic client/server framework based on the Half-Sync / Half-Async pattern was developed. For testing purpose, stub jobs consisting of a simple time delay were employed for testing. We then produced a prototype of the distributed GALibRobocode system by refactoring the standalone version into a client and a server. The server performs all the GALib related functionalities and the clients perform getfitness calls at the request of the server. We tested the distributed version by running the server on one computer and the client on several other computers in a laboratory.

6 6. Experiment Results We found the use of an incremental design for developing a distributed system satisfactory. The incremental approach allowed us to focus on the functionality of the genetic algorithm simulation in the standalone version, separate from problems related to distributed systems, which were subsequently addressed in the distributed version. The incremental approach also allowed us to develop code that is more generalized and easier to debug. The main concern of this project was performance. Ideally, the performance should be a one-toone linear scale-up: by distributing the problem to n processors, the performance should be accelerated n times. Figure 5 summarizes the performance of the distributed system compared to the standalone system when the application was run on a group of 2.4 GHz Dell microcomputers with Java version 1.4.2, Windows XP, and Service Pack 2. On a simulation of five generations, the runtime speedup is almost linear to the computers used in the experiment. The distribution speedup, computed by dividing the runtime of a distributed version over the runtime of the standalone version, is presented in the rightmost column in Figure 5, and illustrated in Figure 6. Run Type Computers Robocode Population Generations Time Distribution used Rounds size (seconds) Speedup Stand Alone Distributed Distributed Distributed Figure 5: Performance of GALibRobocode 7. Conclusions Our experiment indicates that the performance of genetic algorithm simulation runs can be significantly improved by distributing the computations of the fitness functions over multiple computers. The framework we developed for DistributeGALibRobocode can readily be adapted to any GALib application: Only the GAJob class needs to be customized for the specific fitness function. Indeed a separate experiment at Cal Poly applied a similar distributed framework that uses genetic algorithms to train the agents for a game of Tetris. In terms of software engineering, our experiment indicates that the incremental approach for developing a distributed system by starting with a standalone version is a workable and satisfactory approach, especially when design patterns are applied to the task of extending the standalone version.

7 GALibRobocode Distribution Speedup Stand Alone Distributed Distributed Distributed Com puters Used/Run Type Figure 6: Normalized GALibRobocode Distribution Speedup 8. References 1. Marek Obitko. Genetic Algorithms Kent Beck, et al. Industrial Experience with Design Patterns. Proceedings of the 18th international conference on Software engineering Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides. Design Patterns. Addison- Wesley, Reading, Mass Douglas Schmidt, et al. Pattern-Oriented Software Architecture. Volume 2. John Wiley & Sons, Ltd., England IBM alphaworks. Robocode Sourceforge.net. Java GALib

Evolutionary SAT Solver (ESS)

Evolutionary SAT Solver (ESS) Ninth LACCEI Latin American and Caribbean Conference (LACCEI 2011), Engineering for a Smart Planet, Innovation, Information Technology and Computational Tools for Sustainable Development, August 3-5, 2011,

More information

Architectural Patterns (3)

Architectural Patterns (3) Scatter/Gather Architectural Patterns (3) Prof. Cesare Pautasso http://www.pautasso.info cesare.pautasso@usi.ch @pautasso Goal: send the same message to multiple recipients which will (or may) reply to

More information

ISSN: 2319-5967 ISO 9001:2008 Certified International Journal of Engineering Science and Innovative Technology (IJESIT) Volume 2, Issue 3, May 2013

ISSN: 2319-5967 ISO 9001:2008 Certified International Journal of Engineering Science and Innovative Technology (IJESIT) Volume 2, Issue 3, May 2013 Transistor Level Fault Finding in VLSI Circuits using Genetic Algorithm Lalit A. Patel, Sarman K. Hadia CSPIT, CHARUSAT, Changa., CSPIT, CHARUSAT, Changa Abstract This paper presents, genetic based algorithm

More information

Understanding the Benefits of IBM SPSS Statistics Server

Understanding the Benefits of IBM SPSS Statistics Server IBM SPSS Statistics Server Understanding the Benefits of IBM SPSS Statistics Server Contents: 1 Introduction 2 Performance 101: Understanding the drivers of better performance 3 Why performance is faster

More information

Deployment Pattern. Youngsu Son 1,JiwonKim 2, DongukKim 3, Jinho Jang 4

Deployment Pattern. Youngsu Son 1,JiwonKim 2, DongukKim 3, Jinho Jang 4 Deployment Pattern Youngsu Son 1,JiwonKim 2, DongukKim 3, Jinho Jang 4 Samsung Electronics 1,2,3, Hanyang University 4 alroad.son 1, jiwon.ss.kim 2, dude.kim 3 @samsung.net, undersense3538@gmail.com 4

More information

Patterns in. Lecture 2 GoF Design Patterns Creational. Sharif University of Technology. Department of Computer Engineering

Patterns in. Lecture 2 GoF Design Patterns Creational. Sharif University of Technology. Department of Computer Engineering Patterns in Software Engineering Lecturer: Raman Ramsin Lecture 2 GoF Design Patterns Creational 1 GoF Design Patterns Principles Emphasis on flexibility and reuse through decoupling of classes. The underlying

More information

Keywords: mobile agents, supply chain management, industrial application.

Keywords: mobile agents, supply chain management, industrial application. A Shipment Tracking System using Wireless technology and Mobile agents Mei-Ling L. Liu, Alfredo Macias, Thuan Ngo Computer Science Department, California Polytechnic State University, San Luis Obispo mliu@csc.calpoly.edu

More information

Chapter 12: Multiprocessor Architectures. Lesson 01: Performance characteristics of Multiprocessor Architectures and Speedup

Chapter 12: Multiprocessor Architectures. Lesson 01: Performance characteristics of Multiprocessor Architectures and Speedup Chapter 12: Multiprocessor Architectures Lesson 01: Performance characteristics of Multiprocessor Architectures and Speedup Objective Be familiar with basic multiprocessor architectures and be able to

More information

SOFT 437. Software Performance Analysis. Ch 5:Web Applications and Other Distributed Systems

SOFT 437. Software Performance Analysis. Ch 5:Web Applications and Other Distributed Systems SOFT 437 Software Performance Analysis Ch 5:Web Applications and Other Distributed Systems Outline Overview of Web applications, distributed object technologies, and the important considerations for SPE

More information

Designing Real-Time and Embedded Systems with the COMET/UML method

Designing Real-Time and Embedded Systems with the COMET/UML method By Hassan Gomaa, Department of Information and Software Engineering, George Mason University. Designing Real-Time and Embedded Systems with the COMET/UML method Most object-oriented analysis and design

More information

Weighted Total Mark. Weighted Exam Mark

Weighted Total Mark. Weighted Exam Mark CMP2204 Operating System Technologies Period per Week Contact Hour per Semester Total Mark Exam Mark Continuous Assessment Mark Credit Units LH PH TH CH WTM WEM WCM CU 45 30 00 60 100 40 100 4 Rationale

More information

Name of pattern types 1 Process control patterns 2 Logic architectural patterns 3 Organizational patterns 4 Analytic patterns 5 Design patterns 6

Name of pattern types 1 Process control patterns 2 Logic architectural patterns 3 Organizational patterns 4 Analytic patterns 5 Design patterns 6 The Researches on Unified Pattern of Information System Deng Zhonghua,Guo Liang,Xia Yanping School of Information Management, Wuhan University Wuhan, Hubei, China 430072 Abstract: This paper discusses

More information

BSC vision on Big Data and extreme scale computing

BSC vision on Big Data and extreme scale computing BSC vision on Big Data and extreme scale computing Jesus Labarta, Eduard Ayguade,, Fabrizio Gagliardi, Rosa M. Badia, Toni Cortes, Jordi Torres, Adrian Cristal, Osman Unsal, David Carrera, Yolanda Becerra,

More information

Excerpts from Chapter 4, Architectural Modeling -- UML for Mere Mortals by Eric J. Naiburg and Robert A. Maksimchuk

Excerpts from Chapter 4, Architectural Modeling -- UML for Mere Mortals by Eric J. Naiburg and Robert A. Maksimchuk Excerpts from Chapter 4, Architectural Modeling -- UML for Mere Mortals by Eric J. Naiburg and Robert A. Maksimchuk Physical Architecture As stated earlier, architecture can be defined at both a logical

More information

Garbage Collection in the Java HotSpot Virtual Machine

Garbage Collection in the Java HotSpot Virtual Machine http://www.devx.com Printed from http://www.devx.com/java/article/21977/1954 Garbage Collection in the Java HotSpot Virtual Machine Gain a better understanding of how garbage collection in the Java HotSpot

More information

Numerical Research on Distributed Genetic Algorithm with Redundant

Numerical Research on Distributed Genetic Algorithm with Redundant Numerical Research on Distributed Genetic Algorithm with Redundant Binary Number 1 Sayori Seto, 2 Akinori Kanasugi 1,2 Graduate School of Engineering, Tokyo Denki University, Japan 10kme41@ms.dendai.ac.jp,

More information

Chain of Responsibility

Chain of Responsibility Chain of Responsibility Comp-303 : Programming Techniques Lecture 21 Alexandre Denault Computer Science McGill University Winter 2004 April 1, 2004 Lecture 21 Comp 303 : Chain of Responsibility Page 1

More information

A Load Balancing Algorithm based on the Variation Trend of Entropy in Homogeneous Cluster

A Load Balancing Algorithm based on the Variation Trend of Entropy in Homogeneous Cluster , pp.11-20 http://dx.doi.org/10.14257/ ijgdc.2014.7.2.02 A Load Balancing Algorithm based on the Variation Trend of Entropy in Homogeneous Cluster Kehe Wu 1, Long Chen 2, Shichao Ye 2 and Yi Li 2 1 Beijing

More information

Chapter 18: Database System Architectures. Centralized Systems

Chapter 18: Database System Architectures. Centralized Systems Chapter 18: Database System Architectures! Centralized Systems! Client--Server Systems! Parallel Systems! Distributed Systems! Network Types 18.1 Centralized Systems! Run on a single computer system and

More information

Alpha Cut based Novel Selection for Genetic Algorithm

Alpha Cut based Novel Selection for Genetic Algorithm Alpha Cut based Novel for Genetic Algorithm Rakesh Kumar Professor Girdhar Gopal Research Scholar Rajesh Kumar Assistant Professor ABSTRACT Genetic algorithm (GA) has several genetic operators that can

More information

Lambda Architecture. Near Real-Time Big Data Analytics Using Hadoop. January 2015. Email: bdg@qburst.com Website: www.qburst.com

Lambda Architecture. Near Real-Time Big Data Analytics Using Hadoop. January 2015. Email: bdg@qburst.com Website: www.qburst.com Lambda Architecture Near Real-Time Big Data Analytics Using Hadoop January 2015 Contents Overview... 3 Lambda Architecture: A Quick Introduction... 4 Batch Layer... 4 Serving Layer... 4 Speed Layer...

More information

Building Scalable Applications Using Microsoft Technologies

Building Scalable Applications Using Microsoft Technologies Building Scalable Applications Using Microsoft Technologies Padma Krishnan Senior Manager Introduction CIOs lay great emphasis on application scalability and performance and rightly so. As business grows,

More information

Parallel Programming at the Exascale Era: A Case Study on Parallelizing Matrix Assembly For Unstructured Meshes

Parallel Programming at the Exascale Era: A Case Study on Parallelizing Matrix Assembly For Unstructured Meshes Parallel Programming at the Exascale Era: A Case Study on Parallelizing Matrix Assembly For Unstructured Meshes Eric Petit, Loïc Thebault, Quang V. Dinh May 2014 EXA2CT Consortium 2 WPs Organization Proto-Applications

More information

Endo-Testing: Unit Testing with Mock Objects

Endo-Testing: Unit Testing with Mock Objects Endo-Testing: Unit Testing with Mock Objects Tim Mackinnon, Steve Freeman, Philip Craig (tim.mackinnon@pobox.com, steve@m3p.co.uk, philip@pobox.com) ABSTRACT Unit testing is a fundamental practice in Extreme

More information

Evaluating OO-CASE tools: OO research meets practice

Evaluating OO-CASE tools: OO research meets practice Evaluating OO-CASE tools: OO research meets practice Danny Greefhorst, Matthijs Maat, Rob Maijers {greefhorst, maat, maijers}@serc.nl Software Engineering Research Centre - SERC PO Box 424 3500 AK Utrecht

More information

2. Analysis, Design and Implementation

2. Analysis, Design and Implementation 2. Analysis, Design and Implementation Subject/Topic/Focus: Software Production Process Summary: Software Crisis Software as a Product: From Programs to Application Systems Products Software Development:

More information

What is BPM? Software tools enabling BPM

What is BPM? Software tools enabling BPM What is BPM? BPM, or Business Process Management, is a technology, but it is also more than that. Broadly speaking, one can consider BPM as a management discipline in which processes are valued as assets

More information

4.1 Threads in the Server System

4.1 Threads in the Server System Software Architecture of GG1 A Mobile Phone Based Multimedia Remote Monitoring System Y. S. Moon W. S. Wong H. C. Ho Kenneth Wong Dept of Computer Science & Engineering Dept of Engineering Chinese University

More information

.NET and J2EE Intro to Software Engineering

.NET and J2EE Intro to Software Engineering .NET and J2EE Intro to Software Engineering David Talby This Lecture.NET Platform The Framework CLR and C# J2EE Platform And Web Services Introduction to Software Engineering The Software Crisis Methodologies

More information

A Tool for Evaluation and Optimization of Web Application Performance

A Tool for Evaluation and Optimization of Web Application Performance A Tool for Evaluation and Optimization of Web Application Performance Tomáš Černý 1 cernyto3@fel.cvut.cz Michael J. Donahoo 2 jeff_donahoo@baylor.edu Abstract: One of the main goals of web application

More information

CS Standards Crosswalk: CSTA K-12 Computer Science Standards and Oracle Java Programming (2014)

CS Standards Crosswalk: CSTA K-12 Computer Science Standards and Oracle Java Programming (2014) CS Standards Crosswalk: CSTA K-12 Computer Science Standards and Oracle Java Programming (2014) CSTA Website Oracle Website Oracle Contact http://csta.acm.org/curriculum/sub/k12standards.html https://academy.oracle.com/oa-web-introcs-curriculum.html

More information

A Design Pattern for Efficient Retrieval of Large Data Sets from Remote Data Sources

A Design Pattern for Efficient Retrieval of Large Data Sets from Remote Data Sources A Design Pattern for Efficient Retrieval of Large Data Sets from Remote Data Sources Brad Long Australian Development Centre, Oracle Corporation, Brisbane, Qld. 4000, Australia. brad.long@oracle.com and

More information

Genetic Algorithm. Based on Darwinian Paradigm. Intrinsically a robust search and optimization mechanism. Conceptual Algorithm

Genetic Algorithm. Based on Darwinian Paradigm. Intrinsically a robust search and optimization mechanism. Conceptual Algorithm 24 Genetic Algorithm Based on Darwinian Paradigm Reproduction Competition Survive Selection Intrinsically a robust search and optimization mechanism Slide -47 - Conceptual Algorithm Slide -48 - 25 Genetic

More information

Xtreme RUP. Ne t BJECTIVES. Lightening Up the Rational Unified Process. 2/9/2001 Copyright 2001 Net Objectives 1. Agenda

Xtreme RUP. Ne t BJECTIVES. Lightening Up the Rational Unified Process. 2/9/2001 Copyright 2001 Net Objectives 1. Agenda Xtreme RUP by Ne t BJECTIVES Lightening Up the Rational Unified Process 2/9/2001 Copyright 2001 Net Objectives 1 RUP Overview Agenda Typical RUP Challenges Xtreme Programming Paradigm Document driven or

More information

LONG BEACH CITY COLLEGE MEMORANDUM

LONG BEACH CITY COLLEGE MEMORANDUM LONG BEACH CITY COLLEGE MEMORANDUM DATE: May 5, 2000 TO: Academic Senate Equivalency Committee FROM: John Hugunin Department Head for CBIS SUBJECT: Equivalency statement for Computer Science Instructor

More information

Tools Page 1 of 13 ON PROGRAM TRANSLATION. A priori, we have two translation mechanisms available:

Tools Page 1 of 13 ON PROGRAM TRANSLATION. A priori, we have two translation mechanisms available: Tools Page 1 of 13 ON PROGRAM TRANSLATION A priori, we have two translation mechanisms available: Interpretation Compilation On interpretation: Statements are translated one at a time and executed immediately.

More information

Methodology of performance evaluation of integrated service systems with timeout control scheme

Methodology of performance evaluation of integrated service systems with timeout control scheme Methodology of performance evaluation of integrated service systems with timeout control scheme Akira Kawaguchi and Hiroshi Yamada NTT Service Integration Laboratories, NTT Corporation 9-11, Midori-cho

More information

14.10.2014. Overview. Swarms in nature. Fish, birds, ants, termites, Introduction to swarm intelligence principles Particle Swarm Optimization (PSO)

14.10.2014. Overview. Swarms in nature. Fish, birds, ants, termites, Introduction to swarm intelligence principles Particle Swarm Optimization (PSO) Overview Kyrre Glette kyrrehg@ifi INF3490 Swarm Intelligence Particle Swarm Optimization Introduction to swarm intelligence principles Particle Swarm Optimization (PSO) 3 Swarms in nature Fish, birds,

More information

A Comparative Study on Vega-HTTP & Popular Open-source Web-servers

A Comparative Study on Vega-HTTP & Popular Open-source Web-servers A Comparative Study on Vega-HTTP & Popular Open-source Web-servers Happiest People. Happiest Customers Contents Abstract... 3 Introduction... 3 Performance Comparison... 4 Architecture... 5 Diagram...

More information

System Requirements and Configuration Options

System Requirements and Configuration Options System Requirements and Configuration Options Software: CrimeView Community, CrimeView Web System requirements and configurations are outlined below for CrimeView Web and CrimeView Community (including

More information

Extended Finite-State Machine Inference with Parallel Ant Colony Based Algorithms

Extended Finite-State Machine Inference with Parallel Ant Colony Based Algorithms Extended Finite-State Machine Inference with Parallel Ant Colony Based Algorithms Daniil Chivilikhin PhD student ITMO University Vladimir Ulyantsev PhD student ITMO University Anatoly Shalyto Dr.Sci.,

More information

Modular Communication Infrastructure Design with Quality of Service

Modular Communication Infrastructure Design with Quality of Service Modular Communication Infrastructure Design with Quality of Service Pawel Wojciechowski and Péter Urbán Distributed Systems Laboratory School of Computer and Communication Sciences Swiss Federal Institute

More information

Software Refactoring using New Architecture of Java Design Patterns

Software Refactoring using New Architecture of Java Design Patterns Software Refactoring using New Architecture of Java Design Patterns Norddin Habti, Prashant 1, 1 Departement d informatique et de recherche operationnelle, Universite de Montreal, Quebec, Canada (Dated:

More information

CS355 Hw 3. Extended Shell with Job Control

CS355 Hw 3. Extended Shell with Job Control CS355 Hw 3 Due by the end of day Tuesday, Mar 18. Design document due on Thursday, Feb 27 in class. Written supplementary problems due on Thursday, March 6. Programming Assignment: You should team up with

More information

A Parallel Processor for Distributed Genetic Algorithm with Redundant Binary Number

A Parallel Processor for Distributed Genetic Algorithm with Redundant Binary Number A Parallel Processor for Distributed Genetic Algorithm with Redundant Binary Number 1 Tomohiro KAMIMURA, 2 Akinori KANASUGI 1 Department of Electronics, Tokyo Denki University, 07ee055@ms.dendai.ac.jp

More information

Design Pattern for the Adaptive Scheduling of Real-Time Tasks with Multiple Versions in RTSJ

Design Pattern for the Adaptive Scheduling of Real-Time Tasks with Multiple Versions in RTSJ Design Pattern for the Adaptive Scheduling of Real-Time Tasks with Multiple Versions in RTSJ Rodrigo Gonçalves, Rômulo Silva de Oliveira, Carlos Montez LCMI Depto. de Automação e Sistemas Univ. Fed. de

More information

Resource Allocation Schemes for Gang Scheduling

Resource Allocation Schemes for Gang Scheduling Resource Allocation Schemes for Gang Scheduling B. B. Zhou School of Computing and Mathematics Deakin University Geelong, VIC 327, Australia D. Walsh R. P. Brent Department of Computer Science Australian

More information

Towards an Agent-Based Augmented Cloud

Towards an Agent-Based Augmented Cloud Paper Towards an Agent-Based Augmented Cloud Roman Dębski, Aleksander Byrski, and Marek Kisiel-Dorohinicki Department of Computer Science, AGH University of Science and Technology, Kraków, Poland Abstract

More information

High-Performance Batch Processing Framework

High-Performance Batch Processing Framework High-Performance Batch Processing Framework It is hard to find a mid to large sized business today that does not have at least a batch job or process that runs independent of the web application running

More information

Proactive, Resource-Aware, Tunable Real-time Fault-tolerant Middleware

Proactive, Resource-Aware, Tunable Real-time Fault-tolerant Middleware Proactive, Resource-Aware, Tunable Real-time Fault-tolerant Middleware Priya Narasimhan T. Dumitraş, A. Paulos, S. Pertet, C. Reverte, J. Slember, D. Srivastava Carnegie Mellon University Problem Description

More information

A Framework for Genetic Algorithms in Games

A Framework for Genetic Algorithms in Games A Framework for Genetic Algorithms in Games Vinícius Godoy de Mendonça Cesar Tadeu Pozzer Roberto Tadeu Raiitz 1 Universidade Positivo, Departamento de Informática 2 Universidade Federal de Santa Maria,

More information

A Robust Method for Solving Transcendental Equations

A Robust Method for Solving Transcendental Equations www.ijcsi.org 413 A Robust Method for Solving Transcendental Equations Md. Golam Moazzam, Amita Chakraborty and Md. Al-Amin Bhuiyan Department of Computer Science and Engineering, Jahangirnagar University,

More information

2. Analysis, Design and Implementation

2. Analysis, Design and Implementation 2. Subject/Topic/Focus: Software Production Process Summary: Software Crisis Software as a Product: From Individual Programs to Complete Application Systems Software Development: Goals, Tasks, Actors,

More information

Design Patterns. Design patterns are known solutions for common problems. Design patterns give us a system of names and ideas for common problems.

Design Patterns. Design patterns are known solutions for common problems. Design patterns give us a system of names and ideas for common problems. Design Patterns Design patterns are known solutions for common problems. Design patterns give us a system of names and ideas for common problems. What are the major description parts? Design Patterns Descriptions

More information

In this Lecture you will Learn: Implementation. Software Implementation Tools. Software Implementation Tools

In this Lecture you will Learn: Implementation. Software Implementation Tools. Software Implementation Tools In this Lecture you will Learn: Implementation Chapter 19 About tools used in software implementation How to draw component diagrams How to draw deployment diagrams The tasks involved in testing a system

More information

Learning More About Load Testing

Learning More About Load Testing Welcome to this introduction to application performance testing and the LoadRunner load testing solution. This document provides a short overview of LoadRunner s features, and includes the following sections:

More information

Basic Trends of Modern Software Development

Basic Trends of Modern Software Development DITF LDI Lietišķo datorsistēmu programmatūras profesora grupa e-business Solutions Basic Trends of Modern Software Development 2 3 Software Engineering FAQ What is software engineering? An engineering

More information

How to Choose Between Hadoop, NoSQL and RDBMS

How to Choose Between Hadoop, NoSQL and RDBMS How to Choose Between Hadoop, NoSQL and RDBMS Keywords: Jean-Pierre Dijcks Oracle Redwood City, CA, USA Big Data, Hadoop, NoSQL Database, Relational Database, SQL, Security, Performance Introduction A

More information

SCALABILITY AND AVAILABILITY

SCALABILITY AND AVAILABILITY SCALABILITY AND AVAILABILITY Real Systems must be Scalable fast enough to handle the expected load and grow easily when the load grows Available available enough of the time Scalable Scale-up increase

More information

Parallel Computing. Benson Muite. benson.muite@ut.ee http://math.ut.ee/ benson. https://courses.cs.ut.ee/2014/paralleel/fall/main/homepage

Parallel Computing. Benson Muite. benson.muite@ut.ee http://math.ut.ee/ benson. https://courses.cs.ut.ee/2014/paralleel/fall/main/homepage Parallel Computing Benson Muite benson.muite@ut.ee http://math.ut.ee/ benson https://courses.cs.ut.ee/2014/paralleel/fall/main/homepage 3 November 2014 Hadoop, Review Hadoop Hadoop History Hadoop Framework

More information

NVIDIA CUDA Software and GPU Parallel Computing Architecture. David B. Kirk, Chief Scientist

NVIDIA CUDA Software and GPU Parallel Computing Architecture. David B. Kirk, Chief Scientist NVIDIA CUDA Software and GPU Parallel Computing Architecture David B. Kirk, Chief Scientist Outline Applications of GPU Computing CUDA Programming Model Overview Programming in CUDA The Basics How to Get

More information

Benchmarking Cassandra on Violin

Benchmarking Cassandra on Violin Technical White Paper Report Technical Report Benchmarking Cassandra on Violin Accelerating Cassandra Performance and Reducing Read Latency With Violin Memory Flash-based Storage Arrays Version 1.0 Abstract

More information

A Genetic Algorithm Processor Based on Redundant Binary Numbers (GAPBRBN)

A Genetic Algorithm Processor Based on Redundant Binary Numbers (GAPBRBN) ISSN: 2278 1323 All Rights Reserved 2014 IJARCET 3910 A Genetic Algorithm Processor Based on Redundant Binary Numbers (GAPBRBN) Miss: KIRTI JOSHI Abstract A Genetic Algorithm (GA) is an intelligent search

More information

Using In-Memory Computing to Simplify Big Data Analytics

Using In-Memory Computing to Simplify Big Data Analytics SCALEOUT SOFTWARE Using In-Memory Computing to Simplify Big Data Analytics by Dr. William Bain, ScaleOut Software, Inc. 2012 ScaleOut Software, Inc. 12/27/2012 T he big data revolution is upon us, fed

More information

Study of Various Load Balancing Techniques in Cloud Environment- A Review

Study of Various Load Balancing Techniques in Cloud Environment- A Review International Journal of Computer Sciences and Engineering Open Access Review Paper Volume-4, Issue-04 E-ISSN: 2347-2693 Study of Various Load Balancing Techniques in Cloud Environment- A Review Rajdeep

More information

The Applications of Genetic Algorithms in Stock Market Data Mining Optimisation

The Applications of Genetic Algorithms in Stock Market Data Mining Optimisation The Applications of Genetic Algorithms in Stock Market Data Mining Optimisation Li Lin, Longbing Cao, Jiaqi Wang, Chengqi Zhang Faculty of Information Technology, University of Technology, Sydney, NSW

More information

FPGA-based Multithreading for In-Memory Hash Joins

FPGA-based Multithreading for In-Memory Hash Joins FPGA-based Multithreading for In-Memory Hash Joins Robert J. Halstead, Ildar Absalyamov, Walid A. Najjar, Vassilis J. Tsotras University of California, Riverside Outline Background What are FPGAs Multithreaded

More information

SOFTWARE PROCESS MODELS

SOFTWARE PROCESS MODELS SOFTWARE PROCESS MODELS Slide 1 Software Process Models Process model (Life-cycle model) - steps through which the product progresses Requirements phase Specification phase Design phase Implementation

More information

Chapter 3 Chapter 3 Service-Oriented Computing and SOA Lecture Note

Chapter 3 Chapter 3 Service-Oriented Computing and SOA Lecture Note Chapter 3 Chapter 3 Service-Oriented Computing and SOA Lecture Note Text book of CPET 545 Service-Oriented Architecture and Enterprise Application: SOA Principles of Service Design, by Thomas Erl, ISBN

More information

Advanced Computer Architecture

Advanced Computer Architecture Advanced Computer Architecture Institute for Multimedia and Software Engineering Conduction of Exercises: Institute for Multimedia eda and Software Engineering g BB 315c, Tel: 379-1174 E-mail: marius.rosu@uni-due.de

More information

SAN Conceptual and Design Basics

SAN Conceptual and Design Basics TECHNICAL NOTE VMware Infrastructure 3 SAN Conceptual and Design Basics VMware ESX Server can be used in conjunction with a SAN (storage area network), a specialized high speed network that connects computer

More information

A Thread Monitoring System for Multithreaded Java Programs

A Thread Monitoring System for Multithreaded Java Programs A Thread Monitoring System for Multithreaded Java Programs Sewon Moon and Byeong-Mo Chang Department of Computer Science Sookmyung Women s University, Seoul 140-742, Korea wonsein@nate.com, chang@sookmyung.ac.kr

More information

Parallel & Distributed Optimization. Based on Mark Schmidt s slides

Parallel & Distributed Optimization. Based on Mark Schmidt s slides Parallel & Distributed Optimization Based on Mark Schmidt s slides Motivation behind using parallel & Distributed optimization Performance Computational throughput have increased exponentially in linear

More information

Centralized Systems. A Centralized Computer System. Chapter 18: Database System Architectures

Centralized Systems. A Centralized Computer System. Chapter 18: Database System Architectures Chapter 18: Database System Architectures Centralized Systems! Centralized Systems! Client--Server Systems! Parallel Systems! Distributed Systems! Network Types! Run on a single computer system and do

More information

A Genetic Algorithm Approach for Solving a Flexible Job Shop Scheduling Problem

A Genetic Algorithm Approach for Solving a Flexible Job Shop Scheduling Problem A Genetic Algorithm Approach for Solving a Flexible Job Shop Scheduling Problem Sayedmohammadreza Vaghefinezhad 1, Kuan Yew Wong 2 1 Department of Manufacturing & Industrial Engineering, Faculty of Mechanical

More information

Java Coding Practices for Improved Application Performance

Java Coding Practices for Improved Application Performance 1 Java Coding Practices for Improved Application Performance Lloyd Hagemo Senior Director Application Infrastructure Management Group Candle Corporation In the beginning, Java became the language of the

More information

A Service Revenue-oriented Task Scheduling Model of Cloud Computing

A Service Revenue-oriented Task Scheduling Model of Cloud Computing Journal of Information & Computational Science 10:10 (2013) 3153 3161 July 1, 2013 Available at http://www.joics.com A Service Revenue-oriented Task Scheduling Model of Cloud Computing Jianguang Deng a,b,,

More information

Patterns in Software Engineering

Patterns in Software Engineering Patterns in Software Engineering Lecturer: Raman Ramsin Lecture 7 GoV Patterns Architectural Part 1 1 GoV Patterns for Software Architecture According to Buschmann et al.: A pattern for software architecture

More information

Introducing Performance Engineering by means of Tools and Practical Exercises

Introducing Performance Engineering by means of Tools and Practical Exercises Introducing Performance Engineering by means of Tools and Practical Exercises Alexander Ufimtsev, Trevor Parsons, Lucian M. Patcas, John Murphy and Liam Murphy Performance Engineering Laboratory, School

More information

An Agent-Based Framework for Artificial Stock Markets

An Agent-Based Framework for Artificial Stock Markets An Agent-Based Framework for Artificial Stock Markets Katalin Boer Mark Polman Arie de Bruin Uzay Kaymak Erasmus University Rotterdam, Faculty of Economics P.O. Box 1738, 3000 DR, Rotterdam, the Netherlands

More information

Page 1 of 5. (Modules, Subjects) SENG DSYS PSYS KMS ADB INS IAT

Page 1 of 5. (Modules, Subjects) SENG DSYS PSYS KMS ADB INS IAT Page 1 of 5 A. Advanced Mathematics for CS A1. Line and surface integrals 2 2 A2. Scalar and vector potentials 2 2 A3. Orthogonal curvilinear coordinates 2 2 A4. Partial differential equations 2 2 4 A5.

More information

Modern practices 2.3.2015 02.03.2015 TIE-21100/21106 1

Modern practices 2.3.2015 02.03.2015 TIE-21100/21106 1 Modern practices 2.3.2015 1 Today s lecture Learn what some modern SW engineering topics are about A peek to some research topic of our department 2 3 4 5 6 How the lectures continue? 02.03 Modern practices

More information

Recent Advances in Applied & Biomedical Informatics and Computational Engineering in Systems Applications

Recent Advances in Applied & Biomedical Informatics and Computational Engineering in Systems Applications Comparison of Technologies for Software ization PETR SUBA, JOSEF HORALEK, MARTIN HATAS Faculty of Informatics and Management, University of Hradec Králové, Rokitanského 62, 500 03 Hradec Kralove Czech

More information

Overlapping Data Transfer With Application Execution on Clusters

Overlapping Data Transfer With Application Execution on Clusters Overlapping Data Transfer With Application Execution on Clusters Karen L. Reid and Michael Stumm reid@cs.toronto.edu stumm@eecg.toronto.edu Department of Computer Science Department of Electrical and Computer

More information

Validating Java for Safety-Critical Applications

Validating Java for Safety-Critical Applications Validating Java for Safety-Critical Applications Jean-Marie Dautelle * Raytheon Company, Marlborough, MA, 01752 With the real-time extensions, Java can now be used for safety critical systems. It is therefore

More information

EC313 - VHDL State Machine Example

EC313 - VHDL State Machine Example EC313 - VHDL State Machine Example One of the best ways to learn how to code is seeing a working example. Below is an example of a Roulette Table Wheel. Essentially Roulette is a game that selects a random

More information

Load Balancing on a Non-dedicated Heterogeneous Network of Workstations

Load Balancing on a Non-dedicated Heterogeneous Network of Workstations Load Balancing on a Non-dedicated Heterogeneous Network of Workstations Dr. Maurice Eggen Nathan Franklin Department of Computer Science Trinity University San Antonio, Texas 78212 Dr. Roger Eggen Department

More information

Test Driven Development of Embedded Systems Using Existing Software Test Infrastructure

Test Driven Development of Embedded Systems Using Existing Software Test Infrastructure Test Driven Development of Embedded Systems Using Existing Software Test Infrastructure Micah Dowty University of Colorado at Boulder micah@navi.cx March 26, 2004 Abstract Traditional software development

More information

Dynamic load balancing of parallel cellular automata

Dynamic load balancing of parallel cellular automata Dynamic load balancing of parallel cellular automata Marc Mazzariol, Benoit A. Gennart, Roger D. Hersch Ecole Polytechnique Fédérale de Lausanne, EPFL * ABSTRACT We are interested in running in parallel

More information

Keywords revenue management, yield management, genetic algorithm, airline reservation

Keywords revenue management, yield management, genetic algorithm, airline reservation Volume 4, Issue 1, January 2014 ISSN: 2277 128X International Journal of Advanced Research in Computer Science and Software Engineering Research Paper Available online at: www.ijarcsse.com A Revenue Management

More information

Génie Logiciel et Gestion de Projets. Patterns

Génie Logiciel et Gestion de Projets. Patterns Génie Logiciel et Gestion de Projets Patterns 1 Alexander s patterns Christoffer Alexander The Timeless Way of Building, Christoffer Alexander, Oxford University Press, 1979, ISBN 0195024028 Each pattern

More information

HOST SCHEDULING ALGORITHM USING GENETIC ALGORITHM IN CLOUD COMPUTING ENVIRONMENT

HOST SCHEDULING ALGORITHM USING GENETIC ALGORITHM IN CLOUD COMPUTING ENVIRONMENT International Journal of Research in Engineering & Technology (IJRET) Vol. 1, Issue 1, June 2013, 7-12 Impact Journals HOST SCHEDULING ALGORITHM USING GENETIC ALGORITHM IN CLOUD COMPUTING ENVIRONMENT TARUN

More information

The JWAM Framework: Inspired By Research, Reality-Tested By Commercial Utilization

The JWAM Framework: Inspired By Research, Reality-Tested By Commercial Utilization The JWAM Framework: Inspired By Research, Reality-Tested By Commercial Utilization Holger Breitling, Carola Lilienthal, Martin Lippert, Heinz Züllighoven University of Hamburg Computer Science Department,

More information

Operating Systems for Parallel Processing Assistent Lecturer Alecu Felician Economic Informatics Department Academy of Economic Studies Bucharest

Operating Systems for Parallel Processing Assistent Lecturer Alecu Felician Economic Informatics Department Academy of Economic Studies Bucharest Operating Systems for Parallel Processing Assistent Lecturer Alecu Felician Economic Informatics Department Academy of Economic Studies Bucharest 1. Introduction Few years ago, parallel computers could

More information

A Visualization System and Monitoring Tool to Measure Concurrency in MPICH Programs

A Visualization System and Monitoring Tool to Measure Concurrency in MPICH Programs A Visualization System and Monitoring Tool to Measure Concurrency in MPICH Programs Michael Scherger Department of Computer Science Texas Christian University Email: m.scherger@tcu.edu Zakir Hussain Syed

More information

Sourcery Overview & Virtual Machine Installation

Sourcery Overview & Virtual Machine Installation Sourcery Overview & Virtual Machine Installation Damian Rouson, Ph.D., P.E. Sourcery, Inc. www.sourceryinstitute.org Sourcery, Inc. About Us Sourcery, Inc., is a software consultancy founded by and for

More information

Software Engineering I (02161)

Software Engineering I (02161) Software Engineering I (02161) Week 8 Assoc. Prof. Hubert Baumeister DTU Compute Technical University of Denmark Spring 2015 Last Week State machines Layered Architecture: GUI Layered Architecture: Persistency

More information

Performance Engineering of Component-Based Distributed Software Systems

Performance Engineering of Component-Based Distributed Software Systems Performance Engineering of Component-Based Distributed Software Systems Hassan Gomaa 1 and Daniel A. Menascé 2 1 Dept. of Information and Software Engineering School of Information Technology and Engineering

More information

Balancing Manufacturability and Optimal Structural Performance for Laminate Composites through a Genetic Algorithm

Balancing Manufacturability and Optimal Structural Performance for Laminate Composites through a Genetic Algorithm Balancing Manufacturability and Optimal Structural Performance for Laminate Composites through a Genetic Algorithm Mike Stephens Senior Composites Stress Engineer, Airbus UK Composite Research, Golf Course

More information

Empirically Identifying the Best Genetic Algorithm for Covering Array Generation

Empirically Identifying the Best Genetic Algorithm for Covering Array Generation Empirically Identifying the Best Genetic Algorithm for Covering Array Generation Liang Yalan 1, Changhai Nie 1, Jonathan M. Kauffman 2, Gregory M. Kapfhammer 2, Hareton Leung 3 1 Department of Computer

More information