1 / 23

SBSE

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

Download Presentation

SBSE

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. SBSE Course 4

  2. 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

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

  4. Design

  5. 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

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

  7. Solution • Discussion: possible approaches

  8. ◙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

  9. ◙ Efficient Scheduling of Arbitrary Task Graphs toMultiprocessors using A Parallel Genetic Algorithm • Uses a parallel implementation of GA • Examples of approaches • Parallel evaluation • Parallel evolution/ island model

  10. Discussion of techniques

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

  12. 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

  13. Hardware/software co-design in embedded systems • Hardware and software (designers) must cooperate • Hardware/software co-design

  14. Implementation

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

  16. ◙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

  17. ◙Automatic programming and program maintenance withgenetic 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

  18. ◙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”.

  19. 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.

  20. 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

  21. 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

  22. 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 • http://www.infoiasi.ro/~ogh/tep

  23. 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.

More Related