Applying Design Patterns in Distributing a Genetic Algorithm Application
|
|
- Maurice Copeland
- 8 years ago
- Views:
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)
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 informationArchitectural 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 informationISSN: 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 informationUnderstanding 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 informationDeployment 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 informationPatterns 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 informationKeywords: 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 informationChapter 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 informationSOFT 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 informationDesigning 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 informationWeighted 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 informationName 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 informationBSC 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 informationExcerpts 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 informationGarbage 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 informationNumerical 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 informationChain 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 informationA 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 informationChapter 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 informationAlpha 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 informationLambda 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 informationBuilding 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 informationParallel 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 informationEndo-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 informationEvaluating 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 information2. 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 informationWhat 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 information4.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 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 informationA 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 informationCS 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 informationA 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 informationGenetic 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 informationXtreme 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 informationLONG 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 informationTools 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 informationMethodology 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 information14.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 informationA 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 informationSystem 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 informationExtended 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 informationModular 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 informationSoftware 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 informationCS355 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 informationA 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 informationDesign 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 informationResource 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 informationTowards 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 informationHigh-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 informationProactive, 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 informationA 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 informationA 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 information2. 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 informationDesign 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 informationIn 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 informationLearning 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 informationBasic 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 informationHow 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 informationSCALABILITY 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 informationParallel 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 informationNVIDIA 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 informationBenchmarking 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 informationA 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 informationUsing 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 informationStudy 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 informationThe 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 informationFPGA-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 informationSOFTWARE 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 informationChapter 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 informationAdvanced 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 informationSAN 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 informationA 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 informationParallel & 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 informationCentralized 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 informationA 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 informationJava 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 informationA 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 informationPatterns 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 informationIntroducing 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 informationAn 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 informationPage 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 informationModern 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 informationRecent 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 informationOverlapping 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 informationValidating 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 informationEC313 - 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 informationLoad 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 informationTest 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 informationDynamic 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 informationKeywords 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 informationGé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 informationHOST 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 informationThe 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 informationOperating 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 informationA 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 informationSourcery 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 informationSoftware 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 informationPerformance 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 informationBalancing 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 informationEmpirically 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