Skip to content

Change Log

v2.1.1 (2019-09-24)

  • Bug and stability fixes

v2.1.0 (2019-09-19)

  • New Licensing mechanism implemented
  • Optimizer Studio will fail if one of scripts ends with an error
  • Bug and stability fixes

v2.0.2 (2019-09-10)

  • Added example of workload requiring system reboot when setting knob values
  • Bug fixes

v2.0.1 (2019-08-20)

  • Implemented %x and %X format specifiers for knob option format

v2.0 (2019-08-08)

  • Added a possibility to run workload on several nodes in parallel
  • Added support for optimization of Yarn, MapReduce and Spark Hadoop services
  • Added examples for optimization of Yarn, MapReduce and Spark Hadoop services
  • Added support for PHP7 optimization
  • Added support for optimization of Apache2 Web Server
  • Bug and stability fixes

v1.23 (2019-07-25)

  • Added support for HipHop Virtual Machine (HHVM) optimization
  • Added example of HipHop Virtual Machine (HHVM) optimization
  • Added global parameter max_samples_per_config
  • Added global parameter pending_config_timeout_minutes
  • Rename some global parameters:
Old name New name
min_samples_per_option min_samples_per_config
max_invalid_samples_per_option max_invalid_samples_per_config
max_option_mean_cv max_config_mean_cv
  • Bug and stability fixes

v1.22 (2019-05-13)

  • Added example of integration of Optimizer Studio with Apache JMeter load testing tool
  • Added support for OpenMPI optimization
  • Added example of optimization of OpenMPI parameters for GROMACS benchmark
  • Bug and stability fixes

v1.21 (2019-04-11)

  • Added support for MySQL optimization
  • Added MySQL optimization example
  • Fixed improvement percentage calculation for the case of target metric minimization
  • Bug and stability fixes

v1.20 (2019-02-21)

  • Enabled creation of CSV metrics files distiguishable by creation DATE
  • Enabled creation of CSV metrics files by default
  • Implemented tolerance for missing target metric values
  • Improved error handling
  • Improved logging messages

v1.19 (2019-02-10)

  • Enabled creation of CSV metrics files distiguishable by Optimizer Studio PID
  • Enabled fast-forwarding optimization progress to 100% when all the configurations are studied
  • Implemented sanity watchdog preventing Optimizer Studio from staying in memory after SSH session termination
  • Added Android/Geekbench optimization example
  • Added Mellanox NIC optimization example
  • Added PGBench optimization example
  • Added call to pre/post set script(s) in Mellanox NIC embedded knob file
  • Fixed bug in settings script generation, where pre/post set script(s) would not be called
  • Cleaned up logger output
  • Enhanced progress report format and testknob report
  • Enhanced error reporting by eliminating occasional wrong error messages

v1.18 (2019-01-16)

  • Added --report=status command line parameter for getting status report during long sessions
  • Added --session=SESSIONID command line parameter, specifying a certain session ID for a report
  • Added --workload-timeout command line parameter which allows killing too long workloads
  • Removed --warmup-minutes command line parameter as not useful one
  • Optimization progress line has been modified
  • Bug fixes and minor enhancements

v1.17 (2019-01-06)

  • Implemented experimental basic knob dependency functionality
  • Added baseline knobs display along with tuned knobs when calling the best settings script with --show tuned arguments
  • Enabled explicit maximizing/minimizing of workload target metric
  • Enhanced Optimizer Studio statistics display
  • Extended the list of examples provided along with Optimizer Studio
  • More bug fixes and minor enhancements

v1.16 (2018-12-06)

  • Added --show command line option to the best settings script. This option allows to display only knob configuration
  • Fixed missing license expiration message
  • Fixed network-related knobs definition
  • Fixed storage-related knobs definition
  • Fixed instability in ongoing improvement calculation
  • Fixed some example code
  • More bug fixes and minor enhancements

v1.15 (2018-10-17)

  • Added package for Ubuntu 18.04 (Bionic Beaver)
  • The Evolution optimization strategy is now the default. The Greedy strategy is still available and can be enabled by explicitly specifying it in the configuration settings
  • Added configuration settings for Evolution optimization strategy specifics
  • The number of explored options of a knob by the Greedy optimization strategy is now limited by the configuration parameter max_options_per_knob (default value: 12)
  • Added support for using device scripts with memory knobs
  • The embedded MSR knobs now use rdmsr/wrmsr from the default path instead of from /usr/sbin
  • More bug fixes and minor changes

v1.14 (2018-09-16)

  • Implemented support of knob option definition using numeric ranges
  • Added examples of optimizing MongoDB and Phoronix Redis benchmark
  • Bug fixes and minor changes

v1.13 (2018-08-22)

  • Evolution-based optimization algorithm implemented. Users can now select between the Greedy algorithm and the new Evolution optimization strategies.
  • Stricter YAML file validation implemented. Note that existing user configuration files might fail to load if they have illegal fields and values.
  • Added support for spaces in knob names and option values
  • Added support for empty knob option values
  • It's possible now to define a default value for a memory knob, which is used as its baseline. If not specified - the first value in the list of options is used
  • Several users can run Optimizer Studio in parallel
  • Added more examples
  • Bug fix: Optimization Studio behaves more stable during initialization, when initialization takes a certain time
  • Bug fix: Setting script created as a result of Optimization Studio run, can be now executed successfully if some knobs use functions or variables in their set scripts
  • Optimizer Studio now supports having only one baseline sample, down from 3

v1.12 (2018-08-03)

  • Optimizer Studio now can be run by non-privileged users. If the optimization project requires access to privileged system resources, then Optimizer Studio needs to be run as a root user
  • Improved validation of YAML files
  • Added support and example of usage of script-less knobs passed as array to workload script
  • Optimizer Studio now supports SuSE SLES 11 SP4

v1.11 (2018-07-23)

  • Added support for complex workload specification and multi-objective optimimization via scalarization of the target metric
  • Anticipated improvement report now also includes the raw value of the target metric alongside the percentage improvement
  • Optimizer service now runs as a background application instead of as a system service
  • Added syntax validation for YAML files
  • Improved error reporting
  • Added studio-funcs.bash script for facilitating communications between user workload scripts and Optimizer Studio
  • Memory knobs are now also passed as an array to the workload scripts
  • Bug fix: Sometimes knob and metric information passed to the workload scripts were lost when many knobs and metrics were modified
  • Bug fix: Removed invalid samples that appeared at the end of the optimization
  • Various other bug fixes and minor improvements

v1.10 (2018-07-03)

  • If --max-minutes parameter has been specified, Optimizer Studio now will run until the specified time is over, continuosly exploring new knob combinations
  • Bug fixes in stopping the Optimizer Studio by Ctrl+C

v1.9 (2018-06-25)

  • New import capability to import configuration files, filter imported knobs by name
  • Support for onload and enable scripts per configuration file
  • Allow sourcing shell files in configuration files
  • Improved synchronization mechanism between the optimizer-studio script and the optimizer background process
  • Added support for running embedded knobs on remote devices
  • Allow specifying certain settings in the main knob configuration files
  • Bug fix: Values of script-less knobs are now reported in the console output
  • Bug fix: Comparison between different configurations is now calculated correctly when speedup is high

v1.8 (2018-06-12)

  • Added support for skipping configurations that yield more than max_invalid_samples_per_option invalid measurements
  • Added a settings parameter sum_cvs_coefficient that controls the threshold for selecting beneficial configurations
  • Space character is now allowed in command line parameters for parameters that previously required a '=' character. For example "--knobs ./my_knobs.yaml" will now work like "--knobs=./my_knobs.yaml"
  • When no include_metrics and exclude_metrics are defined, the default is now to include all metrics
  • Added an example folder containing one example of optimizing a sum of two integers using Optimizer Studio
  • Bug fix: Corrected calculation of improvement of configurations that resulted in choosing configurations with lower incremental benefit when the general target metric improvement was high
  • Bug fix: Optimizer Studio now works correctly in RHEL 7 and Ubuntu 14.04
  • Bug fix: When using script-less knobs, final settings script will now contain values for all knobs, even if they remain at baseline
  • Bug fix: Correct target metric is shown now at the Optimizer Studio

v1.7 (2018-06-04)

  • Introduce script-less memory knobs whose values are passed to the workload script as environment variables
  • Report anticipated improvement during and at the end of the optimization run
  • Report the number of different configurations checked during optimization
  • More accurate optimization progress calculation for longer running workloads
  • Bug fix: Require fewer baseline samples at the beginning

v1.6 (2018-05-15)

  • Increase default maximum workload time from 10 min to 1 hour
  • Fix bug preventing Optimizer Studio to work on CentOS 7 in synchronous sampling mode
  • Report anticipated performance improvement
  • New knob: Symmetric Multithreading (SMT) is now supported in the embedded knobs

v1.5 (2018-05-03)

  • Fix bug causing Optimizer to hang indefinitely at the end of the run in some situations
  • Improved and more stable progress reporting
  • Change Ctrl+C processing - pressing 3 times Ctrl+C will abort the Studio immediately
  • Ctrl+C now can stop --testknob=all run
  • Create more detailed report of testknob function
  • Make possible to define user target metric when using embedded knobs
  • Fix bug causing wrong handling of parameters of a workload. Now parameters can be passed on optimizer-studio command line

v1.4 (2018-04-24)

  • Fix bug related to progress reporting in certain environments
  • Fix bug that resulted in redundant measurements
  • Use regular characters instead of UTF8 in progress reporting
  • Settings script is now created only when optimal settings are found
  • Slightly revised settings script
  • More descriptive help message

v1.3 (2018-04-17)

  • Introduce sampling-mode command line parameter
  • Fix bug in progress reporting
  • Shorten cleanup time on exit

v1.2 (2018-04-12)

  • Fix bug causing runtime crash at the end of optimization
  • Optimization can continue in case of failures causing optimization runtime restart
  • cpu.cache_prefetch knob will use only legal option values
  • Improve operation in virtual environments by preventing hardware specific sampling
  • --testknob=all is now a working option (bug fix)

v1.1 (2018-04-02)

  • Bug fix related to settings script creation
  • Bug fix related to distorted sampling values on Optimizer Studio exit

v1.0 (2018-03-29)

  • Initial version