SBSE Course 4. Overview: Design Translate requirements into a representation of software Focuses on –Data structures –Architecture –Interfaces –Algorithmic.

Slides:



Advertisements
Similar presentations
© 2004 Wayne Wolf Topics Task-level partitioning. Hardware/software partitioning.  Bus-based systems.
Advertisements

Architecture Representation
Using Parallel Genetic Algorithm in a Predictive Job Scheduling
Master/Slave Architecture Pattern Source: Pattern-Oriented Software Architecture, Vol. 1, Buschmann, et al.
Development of Parallel Simulator for Wireless WCDMA Network Hong Zhang Communication lab of HUT.
SBSE Course 3. EA applications to SE Analysis Design Implementation Testing Reference: Evolutionary Computing in Search-Based Software Engineering Leo.
CMPT 300: Final Review Chapters 8 – Memory Management: Ch. 8, 9 Address spaces Logical (virtual): generated by the CPU Physical: seen by the memory.
Reference: Message Passing Fundamentals.
Parallelized Evolution System Onur Soysal, Erkin Bahçeci Erol Şahin Dept. of Computer Engineering Middle East Technical University.
CS244-Introduction to Embedded Systems and Ubiquitous Computing Instructor: Eli Bozorgzadeh Computer Science Department UC Irvine Winter 2010.
R R R CSE870: Advanced Software Engineering (Cheng): Intro to Software Engineering1 Advanced Software Engineering Dr. Cheng Overview of Software Engineering.
Genetic Algorithms and Their Applications John Paxton Montana State University August 14, 2003.
Parallel Programming Models and Paradigms
Yuan CMSC 838 Presentation Parallelisation of IBD computation for determining genetic disease map.
System Partitioning Kris Kuchcinski
Architecture and Real Time Systems Lab University of Massachusetts, Amherst An Application Driven Reliability Measures and Evaluation Tool for Fault Tolerant.
Constructing Reliable Software Components Across the ORB M. Robert Rwebangira Howard University Future Aerospace Science and Technology.
Introduction & Overview CS4533 from Cooper & Torczon.
Router modeling using Ptolemy Xuanming Dong and Amit Mahajan May 15, 2002 EE290N.
MULTICOMPUTER 1. MULTICOMPUTER, YANG DIPELAJARI Multiprocessors vs multicomputers Interconnection topologies Switching schemes Communication with messages.
Universität Dortmund  P. Marwedel, Univ. Dortmund, Informatik 12, 2003 Hardware/software partitioning  Functionality to be implemented in software.
Genetic Algorithms Overview Genetic Algorithms: a gentle introduction –What are GAs –How do they work/ Why? –Critical issues Use in Data Mining –GAs.
Chapter 6– Artifacts of the process
1 Reasons for parallelization Can we make GA faster? One of the most promising choices is to use parallel implementations. The reasons for parallelization.
- 1 - EE898-HW/SW co-design Hardware/Software Codesign “Finding right combination of HW/SW resulting in the most efficient product meeting the specification”
Course Outline DayContents Day 1 Introduction Motivation, definitions, properties of embedded systems, outline of the current course How to specify embedded.
Teaching Teaching Discrete Mathematics and Algorithms & Data Structures Online G.MirkowskaPJIIT.
Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 1 Introduction to Software Engineering CEN 4010.
Development in hardware – Why? Option: array of custom processing nodes Step 1: analyze the application and extract the component tasks Step 2: design.
ICOM 5995: Performance Instrumentation and Visualization for High Performance Computer Systems Lecture 7 October 16, 2002 Nayda G. Santiago.
Parallel Programming Models Jihad El-Sana These slides are based on the book: Introduction to Parallel Computing, Blaise Barney, Lawrence Livermore National.
Adapting Convergent Scheduling Using Machine Learning Diego Puppin*, Mark Stephenson †, Una-May O’Reilly †, Martin Martin †, and Saman Amarasinghe † *
B.Ramamurthy9/19/20151 Operating Systems u Bina Ramamurthy CS421.
Soft Computing Lecture 18 Foundations of genetic algorithms (GA). Using of GA.
Placement of Entities in Object-oriented Systems by means of a Single-objective Genetic Algorithm Margaritis Basdavanos Alexander Chatzigeorgiou University.
Introduction To System Analysis and Design
Lecture 8: 24/5/1435 Genetic Algorithms Lecturer/ Kawther Abas 363CS – Artificial Intelligence.
RELATIONAL FAULT TOLERANT INTERFACE TO HETEROGENEOUS DISTRIBUTED DATABASES Prof. Osama Abulnaja Afraa Khalifah
Optimal resource assignment to maximize multistate network reliability for a computer network Yi-Kuei Lin, Cheng-Ta Yeh Advisor : Professor Frank Y. S.
Evolving Virtual Creatures & Evolving 3D Morphology and Behavior by Competition Papers by Karl Sims Presented by Sarah Waziruddin.
High Performance Embedded Computing © 2007 Elsevier Lecture 18: Hardware/Software Codesign Embedded Computing Systems Mikko Lipasti, adapted from M. Schulte.
Hardware-software Interface Xiaofeng Fan
- 1 - EE898_HW/SW Partitioning Hardware/software partitioning  Functionality to be implemented in software or in hardware? No need to consider special.
Historical Aspects Origin of software engineering –NATO study group coined the term in 1967 Software crisis –Low quality, schedule delay, and cost overrun.
Chapter 8-2 : Multicomputers Multiprocessors vs multicomputers Multiprocessors vs multicomputers Interconnection topologies Interconnection topologies.
CS244-Introduction to Embedded Systems and Ubiquitous Computing Instructor: Eli Bozorgzadeh Computer Science Department UC Irvine Winter 2010.
C OMPARING T HREE H EURISTIC S EARCH M ETHODS FOR F UNCTIONAL P ARTITIONING IN H ARDWARE -S OFTWARE C ODESIGN Theerayod Wiangtong, Peter Y. K. Cheung and.
6. A PPLICATION MAPPING 6.3 HW/SW partitioning 6.4 Mapping to heterogeneous multi-processors 1 6. Application mapping (part 2)
High Performance Embedded Computing © 2007 Elsevier Chapter 7, part 3: Hardware/Software Co-Design High Performance Embedded Computing Wayne Wolf.
CS- 492 : Distributed system & Parallel Processing Lecture 7: Sun: 15/5/1435 Foundations of designing parallel algorithms and shared memory models Lecturer/
Introduction Metaheuristics: increasingly popular in research and industry mimic natural metaphors to solve complex optimization problems efficient and.
1 Data Structures CSCI 132, Spring 2014 Lecture 1 Big Ideas in Data Structures Course website:
1 The Software Development Process ► Systems analysis ► Systems design ► Implementation ► Testing ► Documentation ► Evaluation ► Maintenance.
A Pattern Language for Parallel Programming Beverly Sanders University of Florida.
1 SYS366 Week 1 - Lecture 1 Introduction to Systems.
Evolutionary Computing Chapter 12. / 26 Chapter 12: Multiobjective Evolutionary Algorithms Multiobjective optimisation problems (MOP) -Pareto optimality.
ECE 526 – Network Processing Systems Design Programming Model Chapter 21: D. E. Comer.
Parallel Computing Presented by Justin Reschke
Genetic Algorithms. Overview “A genetic algorithm (or GA) is a variant of stochastic beam search in which successor states are generated by combining.
Artificial Intelligence By Mr. Ejaz CIIT Sahiwal Evolutionary Computation.
Next Generation of Apache Hadoop MapReduce Owen
1 Comparative Study of two Genetic Algorithms Based Task Allocation Models in Distributed Computing System Oğuzhan TAŞ 2005.
Multi-cellular paradigm The molecular level can support self- replication (and self- repair). But we also need cells that can be designed to fit the specific.
Genetic Algorithms An Evolutionary Approach to Problem Solving.
Genetic Algorithm(GA)
Introduction to Parallel Computing: MPI, OpenMP and Hybrid Programming
USING MICROBIAL GENETIC ALGORITHM TO SOLVE CARD SPLITTING PROBLEM.
Parallel Programming By J. H. Wang May 2, 2017.
Analysis models and design models
Presentation transcript:

SBSE Course 4

Overview: Design Translate requirements into a representation of software Focuses on –Data structures –Architecture –Interfaces –Algorithmic details Also include –Resource and task allocation in a distributed system

Applications: Design Multiprocessor scheduling Task and resource allocation in distributed systems Hardware/software co-design in embedded systems Protocol construction Architecture design

Design

Multiprocessor scheduling Context: multiprocessor system Goal: minimize total run time of the task Multiprocessor scheduling: static/dynamic –Consider communication –Message passing –Waiting / possible deadlocks MPS (s/d): a.k.a. Load Balancing

◙ A Multiprocessor Scheduling Scheme Using Problem-Space Genetic Algorithms Nodes: tasks Edges: communication Weights: cost of communication

Solution Discussion: possible approaches

◙ A Modified Genetic Algorithm for Task Scheduling in Multiprocessor Systems Topic: Multiprocessor scheduling Approach: Partitioned GA-s –Divide and conquer –Divide the problem into subproblems, solve them, then combine them Task graph is partitioned Results: better than the classical GA

◙ Efficient Scheduling of Arbitrary Task Graphs to Multiprocessors using A Parallel Genetic Algorithm Uses a parallel implementation of GA –Examples of approaches Parallel evaluation Parallel evolution/ island model

Discussion of techniques

Other articles Pareto-based Soft Real-Time Task Scheduling in Multiprocessor Systems –Discussion of Pareto: multi-objective optimization –Discussion of elitism

Task and resource allocation in distributed systems Data, functionality usually allocated to specific nodes Node may need resources it owns or shared resources Inter-node communication may cause delays and reliability problems

Hardware/software co-design in embedded systems Hardware and software (designers) must cooperate –Hardware/software co-design

Implementation

Automatic programming, N-version programming, search for compiler optimisations and re-engineering Review: GP techniques

◙ Automatic generation of object-oriented programs using genetic programming Generation of OO-programs –Memory zone allocated for “data” –Methods are supposed to learn to operate properly on the attributes Application –Evolved structures like stack, queue using primitive operations

◙ Automatic programming and program maintenance with genetic programming Turing programs are evolved my means of GP Once such program solves a problem, it is added to a library of reusable code snippets -> see modern ADF-s

◙ Generating Multiple Diverse Software Versions with Genetic Programming A variant for N-Version programming Start more GP processes, each with its specific settings, aiming to synthesize “new ideas”.

Steps 1. The design and implement fitness function by using software specification. 2. Decide, which GP system parameters will be varied. 3. Decide how parameters will vary. 4. Choose the parameter value combinations to use in GP runs. 5. Let GP system to run for each combination of parameter values. 6. Measure fitness for each generated GP program. Calculate the diversity. 7. Select the program combinations with lowest failure probability to the software fault tolerance structure.

Re-engineering A program becomes too old, to “cracky”, needs to be “refurbished”. ◙ Automatic re-engineering of software using genetic programming –Program parallelisation ◙ Genetic algorithm based restructuring of object-oriented designs using metrics –Restructure OO design

Search for compiler optimizations ◙ Optimizing for Reduced Code Space using Genetic Algorithms –Each optimization method is given a letter, the problem is to find which is the better sequence of optimizations to apply ◙ GAPS: A Compiler Framework for Genetic Algorithm (GA) Optimised Parallelisation

Lab tasks (optional) Parameter control in Genetic Algorithms: dwindling mutation rate Multi-objective optimization –As many ‘1001’-s as possible –As many ‘11101’-s as possible Smart bug (GP application) Textual notation for UML research –

Tasks Read the survey Skim over the articles Like one? Choose it! You are not supposed to like a 2-page article, unless you can implement the techniques described in it. Don’t like any? Find your own SBSE article on the net and talk to me about it.