PerOpteryx
From Wissensbasis
PerOpteryx is the name for a set of Eclipse plugins to automatically improve Palladio Component Model instances for performance, reliability, and cost properties.
The details on the latest case studies for our ICSE submission can be found at PerOpteryx/Tactics Case Study.
Contents |
Background
PerOpteryx stands for "Performance Optimizer" and is named after a bat, because it shall explore the architectural design space like a bat explores physical space with sonar.The tool takes a complete PCM instance as input and produces new PCM instances by manipulating certain parameters of the model based on a genetic algorithm. As a new and distinctive feature, it uses domain-specific knowledge (e.g. performance tactics) to improve the generic evolutionary optimisation. PerOpteryx analyses the quality attributes (e.g. performance and costs) of the new instances and tries to find the Pareto front of optimal trade-off solutions. It helps software architects to make informed trade-off decisions between different, conflicting quality attributes.
PerOpteryx works on top of the PCM Bench and uses PCM2LQN, LQNS, and PCMMarkov for performance and reliability prediction. It also features a simple cost calculator that can be used to model any type of costs (e.g. development costs, procurement costs, operating costs, or total cost of ownership). Analysis tools for other quality attribute can be readily added as Eclipse plugins using Eclipse's extension point mechanism. PerOpteryx is implemented based on the Opt4J framework and uses the efficient, multi-objective NSGA-II genetic algorithm internally.
The tool is currently being developed at the Chair for Software Design and Quality of the Karlsruhe Institute of Technology in Germany. For details and questions about PerOpteryx, please contact Anne Martens.
Documentation
The details on the latest case studies for our ICSE submission can be found at PerOpteryx/Tactics Case Study.
Publications introducing the initial ideas and some preliminary case studies:
- WOSP/SIPEW'10: Automatically Improve Software Models for Performance, Reliability, and Cost Using Evolutionary Algorithms (PDF)
- Focus on generic and system-specific degrees of freedom
- Unguided, multiobjective optimisation for performance, reliability, and cost, no tactics support.
- Slides: PowerPoint Screen Presentation, PDF without animations
- QUASOSS'09: Optimising multiple quality criteria of service-oriented software architectures (PDF)
- FESCA'09: Automatic, model-based software performance improvement for component-based software designs (PDF)
- WCOP'08: Performance-oriented Design Space Exploration (PDF)
Other publications related to PerOpteryx or extending it:
- QUASOSS'10: Using Quality of Service Bounds for Effective Multi-objective Software Architecture Optimization, to appear.
- Initial work to extend PerOpteryx to consider bounds for quality requirements to focus the search on interesting regions
- QoSA'10: A Hybrid Approach for Multi-Attribute QoS Optimisation in Component Based Software Systems. Joint Work with Danilo Ardagna and Raffaela Mirandola from Politecnico Milano, Italy. (PDF)
- FASE'10: A process to effectively identify ”guilty” performance antipatterns. Joint work with Vittorio Cortellessa and Catia Trubiani from University of L'Aquila, Italy. (PDF)
Details for published and submitted papers
- Details on ICSE 2010 submission "PerOpteryx: Automated Application of Tactics in Multi-Objective Software Architecture Optimization": PerOpteryx/Tactics Case Study
- Details on QoSA 2010 publication: PerOpteryx/Hybrid Optimisation Case Study
- Details for FASE 2010 publication on antipattern guiltiness: AntipatternGuiltiness.
- Comparison with random search for WOSP/SIPEW publication: PerOpteryx/BRSRandomSearch
Download / Install / Use
- There is no official release of the PCM with PerOpyteryx yet. Thus, you need to install the latest nightly build PCM version, including the "Design Space Exploration (PerOpteryx)" feature.
- Also install the R statistics tool (see PCM Installation#Installing R statistics tool for usage with PCM)
- To use the LQN solvers, also install the LQN tools (see PCM2LQN#Running PCM2LQN)
- Start the PCM Bench and import a PCM project.
- Select "Run/Run Configurations" from the Main Menu".
- Click "PCM Design Space Exploration" to configure your PerOpteryx run.
Screenshots
Example Models
Below you can find several PCM model instances, which you can use for playing around with Peropteryx.
Minimal Example
This is a minimal PCM instance with all annotations to perform a successful run of Peropteryx. It consists of three components and three servers.
Business Reporting System
This is a larger PCM instance with 8 servers and 12 components. It models a Business Reporting System where clients can generate and download business reports from data stored in a database. The model has been used in this paper as a case study and is loosely based on a realistic system.
The LQN model has been created with the PCM2LQN tool (which is included in the latest PCM release). It contains multiple dummy processors and tasks, which were added to make the transformation from PCM more straightforward.
A comparison of the evolutionary optimisation with a random search for this case study is available on a separate page: PerOpteryx/BRSRandomSearch.
Related Projects
Foundations
PerOpteryx applies a multiobjective genetic algorithm to the problem. Currently, NSGA2 as implemented in the Opt4J framework has been chosen.
Concerning multiobjective optimisation, the following work is useful as background information
- Blum & Roli, Metaheuristics in combinatorial optimization: Overview and conceptual comparison (DOI), they discuss single-objective metaheuristics.
- Ehrgott, Multicriteria Optimisation (Google Books link), he discusses multiobjective problems in general and presents algorithmic solutions.
- Coello Coello, A Comprehensive Survey of Evolutionary-Based Multiobjective Optimization Techniques (DBLP Entry Google Scholar search)
- Sean Luke, 2009, Essentials of Metaheuristics (available at http://cs.gmu.edu/~sean/book/metaheuristics/)
- Harman et al., Search Based Software Engineering: A Comprehensive Analysis and Review of Trends Techniques and Applications, (PDF)
Development
PerOpteryx code is available at
- https://sdqweb.ipd.uka.de/svn/code/Palladio.DesignSpaceExploration/trunk/
- The tests plugin is not up to date.
- If you install the nightly build as described above, you will have all plugins PerOpteryx depends on.
- For example plugins from https://sdqweb.ipd.uka.de/svn/code/Palladio.Wrapper/
- Check PCM_Codebereiche for the SVN location if you miss more plugins.
Team
|
|
|
|
|---|---|---|---|
| Anne Martens | Ralf Reussner | Heiko Koziolek | Steffen Becker |
Latest Update: 2010-04-06









