Course 4
• 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
• Multiprocessor scheduling
• Task and resource allocation in distributed systems
• Hardware/software co-design in embedded systems
• Protocol construction
• Architecture design
• 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
• 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
• Pareto-based Soft Real-Time Task
Scheduling in Multiprocessor Systems
– Discussion of Pareto: multi-objective optimization
– Discussion of elitism
• 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 and software (designers) must cooperate
– Hardware/software co-design
• 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”.
• 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.
• 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
• ◙ 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
• 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
• 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.