150 likes | 162 Views
Explore the importance of setting parameters in software systems, the classification based on parameter tuning methods, and the significance of automated tuning. Learn about software categories and the impact of parameter settings on system performance.
E N D
Tuning of parameters in complex software systems(Classification of software depending on parameters) Dušan Tošić tdusan@mi.sanu.ac.rs
Agenda • Inspiration • Setting of parameters • Classification • Conclusion
1. Inspiration Software for Genetic algorithms There are a lot of parameters Parameters are usually defined in a special file The values of parameters are determined by experience of user This software is not friendly oriented. To improve this software we should define the way for determination of parameters.
This problem is actual Some references: Sullivan D. G.: Using Probabilistic Reasoning to Automate Software Tuning, PhD thesis, Harvard University, 2003. Baz M., Hunsaker B., Brooks J.P. and Gosavi A.: Automated Tuning of Optimization Software Parameters, University of Pittsburgh, Technical Report 2007. Brake N., Cordy J. R., Dancy E., Litoiu M. and Popescu V.: Automating discovery of software tuning parameters, Proceedings of the 2008 international workshop on Software engineering for adaptive and self-managing systems, ACM, 2008. Wilson J.: Content Server - Performance Tuning Guide, Oracle, 2007. Ghanbari H. and Litoiu M.: Identifying implicitly declared self-tuning behavior through dynamic analysis, ICSE Workshop on Software Engineering for Adaptive and Self-Managing Systems, 2009.
2. Setting of parameters A software program often has several parameters controlling its execution A set of parameter values — one for each parameter — is a setting. Informally, the goal is to make (find) a good setting A good setting provides the successful using of software.
Explanation • David Gerard Sullivan: • Complex software systems typically include a set of parameters that can be adjusted to improve the system's performance. System designers expose these parameters, which are often referred to as knobs, because they realize that no single configuration of the system can adequately handle every possible workload. Therefore, users are allowed to tune the system, reconfiguring it to perform well on a specific workload. However, manually tuning a software system can be an extremely difficult task, and it is often necessary to dynamically retune the system as workload characteristics change over time.
3. Classification • Analyzing existing software, we can distinguish 4 • classes of software: • Software with fixed parameters (SFP) • Software providing tuning of parameters (STP) • Software with dynamic tuning of parameters (SDP) • 4. Software with automated tuning of parameters (SAP)
3.1. Software with fixed parameters (SFP) • Simple software has not to have parameters (Sometimes it easier (for designer) to fix parameters in advance.) • Using of parameters depends on the nature of problem • Software with fixed parameters usually is not flexible
3.2. Software providing tuning of parameters (STP) • This is the most wide-spread software • This kind of software includes interface for the tuning of parameters • Default values of parameters usually are set in advance • Sometimes it is not possible to set default value of a parameter • Sometimes some knowledge of user (about the connection between problem and software) is necessary for effective using of this software.
Examples: ParametriGA.jar WinXP Friendly oriented OS
3.3. Software with dynamic tuning of parameters (SDP) • Parameters could be changed during the execution of program • Knowledge of user (about the connection between problem and software) usually is not necessary • User should understand the nature of problem • Dialog between user and software is usually used • Some kind of expert system for tuning of parameter is often part of software. Content Server - Performance Tuning Guide 10g Release 3 (10.1.3.3.0), Oracle, 2007.
3.4. Software with automated tuning of parameters (SAP) • The most friendly oriented software • Different methods are used for tuning parameters of software (the probabilistic reasoningis often used) • Automated tuning is not applicable to all kind of software • It is still in experimental faze of using. • (Mixed Integer Linear Programming (MILP) solvers • CPLEX, CBC and GLPK )
4. Conclusion • Flexible software usually depends of parameters • Sometimes it is not possible consider a program as “black box” – tuning of parameters is necessary. • Easy way of parameters setting makes a software friendly oriented • Depending of the way of parameters using, different categories (classes) of software could be introduced.