Change Log¶
v3.25.0 (2023-09-19)¶
- Enable running multiple Studio instances at once. Resource sharing still needs to be avoided
- Retire
optimizer-studio
command line tool, useoptimizer-ctl
instead - Introduce
optimizer-ctl list
to list the existing experiments - Introduce
optimizer-ctl remove
to remove an existing experiment - Introduce config. completion status in the CSV report
- Move Refinement stage configuration to
stages
section of the knob file - Retire
EXPERIMENT_ID
env. variable, use command line switch instead - Fix parallel worker crashing on start-up
- Multiple bug fixes and stability enhancements
v3.24.0 (2023-06-04)¶
- Report current Action to Conductor
- Support Debian 11 (Bullseye) packages
- Retire Ubuntu 18.04 packages
- Update PVTC metric sampling plugin
- Update some dependency libraries
- Update Mysql embedded knobs, update the examples accordingly
- Enhance licensing on CentOS7 on Arm64
- Enhance licensing of worker instances in parallel mode
- Enhance shutdown sequence that could previously lead to indefinite wait
- Multiple bug fixes and stability enhancements
v3.23.0 (2023-01-18)¶
- Generate a dedicated data directory per experiment
- Support Synopsys Common Licensing
- Introduce
testknob NAME
optimizer-ctl
action - Properly set POSIX exit code when
optimizer-ctl
encounters an error - Add embedded knobs for gcc-12.2
- Update examples to reflect the new recommended Studio CLI
- Report optional knob test failure on the console of
optimizer-ctl init
orrun
- Fix occasional failure to report status
- Multiple bug fixes and stability enhancements
v3.22.0 (2022-11-30)¶
- Allow
optimization
stage detailed configuration in the knob file - Retire
--max-minutes
command line parameter - Streamline sysinfo formatting reported to Conductor
- Retire obsolete data fields in CSV file generation
- Update and introduce new examples: postgresql, python, iozone
- Improve error reporting in
optimizer-ctl
- Support different output formats in
optimizer-ctl status
- Multiple bug fixes and stability enhancements
v3.21.0 (2022-10-02)¶
- Enhance and clarify error messages
- Report metrics list along with the inventory
- In parallel mode suspend workers when idle
- In parallel mode report worker ID in the CSV file
- Introduce
global_settings:exit_timeout
- Optimizer must complete shutdown procedure (60s by default) - Update examples
- Update PVTC sampling plugin to use the latest library
- Bug fixes and stability enhancements
v3.20.0 (2022-07-27)¶
- Introduce experimental async invocation mode (optimizer-ctl run)
- Verify target metric definition correctness prior to sampling
- Introduce Synopsys PVTC based sampling plugin (libpvtc-metrics.so)
- Changes to knob set policy: a normal knob can be set always, enable 1-option knobs
- Enable exporting metrics via OpenTelemetry
- Upgrade NATS server version
- Bug fixes and stability enhancements
v3.19.0 (2022-06-14)¶
- Introduce Ubuntu jammy (22.04) packages
- Retire Ubuntu xenial (16.04) packages
- Refresh parallel workload examples to reflect recent workload features
- statsd server can now be defined in knobs.yaml definition file
- Introduce statsd port settings with server setting
- statsd now reports all metrics collected by optimizer
- Bug fixes and stability enhancements
v3.18.0 (2022-04-20)¶
- Introduce Linux perf based sampling plugin (libperf-metrics.so)
- Introduce relocatable RPM - experimental for CentOS-7
- Upgrade build infrastructure
- Examples: introduce (GPU) CUDA kernels optimization
- Bug fixes and stability enhancements
v3.17.0 (2022-03-22)¶
- Knobs: enhance option range with math
expression
- Optimizer-ctl: introduce action queueing
- Examples: update examples with the recent features
- Bug fixes and stability enhancements
v3.16.1 (2022-02-22)¶
- Replay CSV: enable backward compatibility with Web Service generated file
- Switch to Protobuf for internal communications
v3.16.0 (2022-02-16)¶
- Introduce workload abort condition
- Enhance the
replay
command with higher precision - Retire deprecated
workload_settings
section from a knob file - Numerous bug fixes and stability enhancements
v3.15.1 (2022-02-02)¶
- Replace CentOS 8 package with RockyLinux 8 package, as CentOS 8 has reached EOL
- Add an optimization example for RISCV
- Retire 'max_samples' param. in stages definition
- Fix a bug in replay command
- Fix a bug in timeout format parsing
- Experimentally switch to using Protobuf for internal communications
v3.15.0 (2022-01-24)¶
- Optimizer-ctl: introduce 'refine' command (applicable to any configuration)
- Parallel mode: improve scalability by aborting excessive jobs
- Fix Studio progress display. In particular, display progress of the current action in the Idle mode.
- Numerous bug fixes and stability enhancements
v3.14.0 (2021-12-27)¶
- Optimizer-ctl: introduce 'analyze' command
- Optimizer-ctl: introduce 'sample' command
- Optimizer Studio: introduce 'idle' stage to handle optimizer-ctl requests
- Switch to invalid search only from the optimization stage
- Stages: avoid excessive samples in validation stage
- Stop tolerating non-existent files in attachements section
- Numerous bug fixes and stability enhancements
v3.13.0 (2021-11-30)¶
- Support file attachement in workload definition
- Notify user about new Optimizer Studio version availability
- Export all the metrics (including the disabled ones)
- Update embedded compiler flags examples
- Decrease the volume of web-client log messages
- Parallel mode: assert knob file identity on every worker
- Parallel mode: report worker status via optimizer-ctl
- Stages: validation stage definition in the knob file is optional
- Numerous bug fixes and stability enhancements
v3.12.0 (2021-10-25)¶
- Completely revised parallel optimization mode compatible with normal workload definition
- Optimizer-ctl: introduce 'apply_config' command
- Optimizer-ctl: enhance error handling
- Introduce a SPEC AOCC example
- Introduce 3 new accelerator examples
- Support 3 new accelerator knobs
- Do not require options in an overridden knob
- Numerous bug fixes and stability enhancements
v3.11.0 (2021-09-23)¶
- Embedded knobs: introduce additional LLVM compiler flags
- Support relocatable installation directory. Optimizer Studio can be moved to an alternative location
- Retire async sampling mode
- Fix rare Validation stage failure
v3.10.0 (2021-09-07)¶
- Embedded knobs: enhance LLVM compiler flags (Clang-13). Fixed functionality for initial mllvm flag as well as adding more mllvm flags
- Update licensing and other 3rd-party dependencies
v3.9.0 (2021-08-30)¶
- Embedded knobs: introduce up-to-date LLVM compiler flags (Clang-13)
- Workload definition: enable getting multiple knobs via
{{}}
template - Improve Knob Refinement algorithm
- Revisit Knob Refinement configuration params:
refinement_std_tolerance
,refinement_improv_tolerance
- Introduce new accelerator knobs: uname, exec, stat
- Fix inability to test a single knob
- Fix security vulnerabilities
- Numerous bug fixes and stability enhancements
v3.8.1 (2021-08-05)¶
- Hot fix default stage list incompatibility with the community license
- Improved testing coverage
v3.8.0 (2021-08-01)¶
- Introduce
optimizer-ctl set_baseline
command allowing to set any configuration as next experiment baseline - Update parallel mode syntax definition
- Update parallel mode examples
- Fix bug in Community license
- Additional bug fixes and stability enhancements
v3.7.0 (2021-07-22)¶
- Introduce support for Arm and x64 CPU based architectures enriched inventory for Conductor auditing view
- Introduce more robust INI parser for mysql embedded knobs
- Bug and stability fixes
v3.6.0 (2021-07-08)¶
- Introduce advanced functionality for declarative workload definition. More details here
- Bug and stability fixes
v3.5.0 (2021-06-7)¶
- Introduce async, accelerate and other enhanced features for declarative workload definition
- sum_a_b_c_async example added for advanced async mode use case demonstration
- Bug and stability fixes
v3.4.1 (2021-05-19)¶
- Hot patch for workload timeout feature
- Hot patch for optimizer crash in retain mode during validation stage
v3.4.0 (2021-05-14)¶
- Introduce declarative workload settings in experiment definition (
knobs.yaml
). More information can be found at configuration documentation - Update many experiment examples with new declarative workload syntax
- Bug and stability fixes
v3.3.1 (2021-04-30)¶
- Hot patch for
out_directory
global setting in root user mode - Hot patch to Mysql sysbench example
- Additional examples improvement
v3.3.0 (2021-04-28)¶
- Introduce Mysql 8 embedded knobs with updated sysbench example
- Improve various examples, demonstrating new features such as stages, custom inventory and posting sample meta data
- Introduce
exclude_error
Boolean option for finer control over invalid search mechanism, to pass on searching in case of workload errors such as timeouts - Bug and stability fixes
v3.2.1 (2021-04-19)¶
- Hot patch for supporting Arm platforms.
- Hot patch for avoiding local optimizer timeout issues.
v3.2.0 (2021-04-08)¶
- Introduce "expression" target metric. It is now possible to express target metric as a function of other metrics, using inja templates
- Prometheus sampling plugin: enable adding recent sample duration to the query definition
- Sampling plugins: improve user interface and error reporting
- Introduce Accelerator metrics. It is now possible for Optimizer to retrieve metrics from accelerated programs. Currently supported metric: duration
- Optimizer studio log respects
out_directory
global settings parameter - Invalid search is now invoked only for compiler flag mining by default
- Bug and stability fixes
v3.1.1 (2021-03-09)¶
- Hot fix for accelerate liblog packaging bug
- Bug and stability fixes
v3.1.0 (2021-03-01)¶
- Introduce Automatic Invalid knob configuration management - information about invalid configurations found during an experiment can be reused in subsequent experiments
- Add
--replay-mode
parameter to control samples replayed from a CSV (valid, invalid, all, default: valid) - Introduce logger accelerator. Using a simple knob definition, application logging can be accelerated
- Introduce accelerator filters. Using a simple knob filter definition, it is possible to control which processes will be affected by an accelerator
- Upload console log to Experiment Management System at the end of experiment
- Bug and stability fixes
v3.0.1 (2021-02-10)¶
- Hot patch for optimizer-ctl download_project command
v3.0.0 (2021-02-09)¶
- Introduce Experiment Management System Walkthough Wizard support. It is now a lot easier to create
knobs.yaml
definition from EMS and download the project files, including auto-generatedworkload.sh
script to run the experiment locally, usingoptimizer-ctl download_project
command - Introduce "rational" target metric. it is now possible to define a target metric that represents a ratio of two other metrics
- Introduce accelerate application with arguments injected knobs
- Introduce accelerate application with environment variable injected knobs
- Introduce accelerate application by caching excessive system calls
- Bug and stability fixes
v2.23.0 (2021-02-01)¶
- Improve invalidation mechanism during optimization stage
- Introduce application memory allocation acceleration libraries
- Introduce knob policies: always, set-once, on-change (default), in order to support acceleration libraries
- Introduce optimizer-ctl command, tranforming optimizer-studio acceleration knob recommendations into optimizer-runtime configuration
- Bug and stability fixes
v2.22.0 (2021-01-11)¶
- Add application accelerator - new functionality to speed up applications using acceleration libraries
- Implement "net.throughput". An embedded target metric to measure generic network throughput
- Bug and stability fixes
v2.21.0 (2020-12-07)¶
- Report knob configuration status to Experiment Management System (active, complete, etc.) and display in GUI
- Improve display for Welch t-test validation test report
- Bug and stability fixes
v2.20.0 (2020-11-30)¶
- Introduce additional embedded knobs for CPU tuning
- Add a column with point estimator values to metrics.csv
- Fix problems with using percentile as a point estimator
- Bug and stability fixes
v2.19.0 (2020-11-22)¶
- Update JVM example to use more stable benchmark als->scala-stm-bench7
- Embedded Linux OS knobs: add transparent huge page knob
- Add embedded ZFS knobs
- Optimizer Studio now prints out reports of Readiness and Validation stages on console
- It is possible to download CSV file with samples from Web Service and replay in Optimizer Studio
- Stop supporting CentOS 6, as it reaches its End Of Life
- Bug and stability fixes
v2.18.1 (2020-11-01)¶
- Introduce embedded knobs for optimization of run time library jemalloc and a corresponding example
- Fix startup failure on slow networks
v2.18.0 (2020-10-27)¶
- Add example of using BlazeMeter for optimizing Nginx
- Add example of optimizing Intel compiler (icc) flags
- Add Dynatrace metrics plugin
- Add Datadog metrics plugin and optimization example
- Implement Welch t-test during Validation stage
- Improve the stability of the communication with Web Service, make it more resilient to errors
- Rename
optimizer-studio-license
utility tooptimizer-license
- Bug and stability fixes
v2.17.0 (2020-10-04)¶
- New command line flag --debug-workload allows verbose output when running first iterations of a workload script in order to understand the interaction with the Optimizer Studio
- Bug fix: if an experiment is restored with
--retain
parameter, if the readiness stage was the last active one, it continues from the point it's stopped - Bug and stability fixes
v2.16.0 (2020-09-14)¶
- Connection to Experiment Management System - make use of
https_proxy
/http_proxy
environment variables and apply proxy settings automatically - Support user defined experiment inventory data and add a corresponding example
- Connection to Experiment Management System - support
OPTIMIZER_STUDIO_WEB_TOKEN
environment variable in addition to the corresponding global parameter setting - Optimizer Studio log files are now created along existing optimizer engine log files
- Add support for Python interpreter optimization (cpython) and optimization example
- Optimizer Studio examples were updated to make use of a new File Metrics Plugin and simplify knob file configuration
- Bug and stability fixes
v2.15.1 (2020-09-01)¶
- Bug fix: increase http_buffer_size default to be able to pass larger samples to Experiment Management System
v2.15.0 (2020-08-31)¶
- Settings script, created as a result of optimization session, is uploaded to Experiment Management System
- Send experiment metadata to Experiment Management System
- Send computer inventory list to Experiment Management System
- Support adding metadata for each sample
- Added metrics plugin and example for New Relic APM
-
Embedded_jvm example has been updated to the latest version 0.11 of the Renaissance Benchmark Suite
-
Bug and stability fixes
v2.14.0 (2020-08-14)¶
- Introduce optimizer-ctl utility - login to SaaS service, create project etc, directly from CLI
- Introduce embedded knobs for Intel C/C++ compiler (icc)
- Global settings parameters can include now environment variables
- File metrics plugin: check for metrics file really updated by the workload script
- Bug fix: knob values loaded during replaying of a CSV file, shall be considered as valid
- Bug and stability fixes
v2.13.0 (2020-07-22)¶
- Optimizer Studio Stages defined: Readiness, Optimization, Refinement, Validation, using command line parameter --stages. Deprecate command line parameters --no-refine and --refine-only; the same functionality is avaliable in Refinement stage.
- Added support for SolarFlare Onload NIC embedded knobs
- Added a_plus_b_wsl example for running in Windows Subsystem for Linux (WSL)
- Added metrics plugin for Prometheus server
- Added support of json metric results in file metrics plugin
- Modify some global parameters specifying time duration to use time units. Old parameters are deprecated
- Bug and stability fixes
v2.12.0 (2020-06-28)¶
- Support additional embedded knobs for gcc 10 - vectorization and inlining
- Added embedded knobs for optimization of Golang garbage collection performance
- Added examples for optimization of Golang garbage collection parameters
- Improved error diagnostic messages in many cases
- Support licensing on Ubuntu 18.04 and Ubuntu 20.04 on ARM64 platform
- Move metric plugin shared libraries into plugins subdirectory and rename some libraries
- Load required plugins automatically according to a metric name
- Knob files: deprecate usage of 'options_script' tag, in favor of 'options/script' definition
- Minor fixes and improvements in conectivity with Experiment Management System
- Other bug and stability fixes
v2.11.0 (2020-06-02)¶
- Improve connectivity features with Experiment Management Service
- Add support for Community license. Community license is now default one if a user has no other license
- Update JVM embedded knobs and usage examples - improve robustness
- Update NGINX embedded knobs and usage examples - better support of default settings
- Bug and stability fixes
v2.10.2 (2020-05-19)¶
- Added example of gcc compilation flag mining in concurrent optimization mode
- Bug and stability fixes
v2.10.1 (2020-05-14)¶
- Bug and stability fixes
v2.10.0 (2020-05-11)¶
- Optimizer Studio connects to new Experiment Management Service
- Add support for Ubuntu 20.04 on x86_64 and arm64 platforms
- Add support for Ubuntu 18.04 on arm64 (x86_64 has been already supported)
- Stop supporting Ubuntu 14.04
- optimizer-studio is now a binary executable rather than bash script
- Add file metrics plugin, which simplifies passing workload metrics via files
- Modify a_plus_b and sum_a_b_c examples to use file metrics plugin
- JVM embedded knobs: allow empty default knob values
- JVM embedded knobs: improve some parameters to reduce too big number of options to test
- Bug and stability fixes
v2.9.1 (2020-03-27)¶
- Fix intermittent crash during saving of report.json
v2.9.0 (2020-03-23)¶
- Add an example of SPEC CPU 2017 benchmark suite optimization using GCC knobs
- Allow early stop of exploration of a knob configuration if it doesn't contribute to target metric improvement
- Metrics.csv file format slightly changed: knob_settings column now stores knob configuration in JSON rather than non-standard text string
- Bug and stability fixes
v2.8.0 (2020-03-16)¶
- Introduce embedded knobs for LLVM compiler
- Add examples of optimization of compilation with LLVM compiler
- Improve JVM embedded knobs by adding boolean knobs
- Add an example of SPEC CPU 2017 benchmark suite optimization
- User can define an alternative baseline configuration
- Bug and stability fixes
v2.7.0 (2020-02-27)¶
- Introduce NGINX web server and proxy embedded knobs
- Introduce NGINX optimization example
- Introduce a Python workload example
- Introduce replaceable target metric point estimation function (average, percentile, mode)
- Bug and stability fixes
v2.6.0 (2020-01-31)¶
- Knob Refinement functionality change - optimizer shall now run two-phase refinement automatically instead of choosing a strategy (logarithmic then one-by-one)
- Introduce basic StatsD protocol support. By adding
statsd_server: <ip>
tosettings.yaml
, optimizer will attempt pushing target metric to statsd server if available. - Improve knob name and options validation
- Improve recovery in rare cases of abnormal crashes
- Retire support for SLES 11 SP4, as it is EOL in March.2020
- Bug and stability fixes
v2.5.0 (2019-12-30)¶
- Introduce Knob Refinement functionality - a post processing that allows to clean up insignificant changes from the best knob configuration
- Introduce Seed Knob Configurations functionality that allows to reuse the results of one optimization experiment to speed up another one by providing a better starting point
- Testing all knobs is performed now prior to running optimization
- Add more embedded network optimization knobs
- Add Redis embedded knobs
- Add Redis optimization example
- Support for SLES 11 SP4 has been retired, as SLES 11 SP4 is EOL in March.2020
- Bug and stability fixes
v2.4.0 (2019-12-12)¶
- Introduce "Replay metrics.csv" functionality
- Allow default file names for knobs file (knobs.yaml) and workload script (workload.sh)
- Add option to the result setting script to get knob values as Bash array variable
- Add '--show' option to the optimizer-studio-license tool to show information about the license
- Add embedded knobs for JVM engine - from version 8 and above
- Add example of JVM optimization
- Minor changes in CSV format: replace start and end time fields with a single epoch time timestamp to simplify integration with metric collection tools.
- Minor format change in console output. Baseline knob values are marked, if present in the best known settings:
Best known knob settings so far:
A: 8
B: 8
C: 8 [baseline]
- Bug and stability fixes
v2.3.1 (2019-11-13)¶
- Mellanox knobs: more robust error handling
- "duration" metric is minimized by default
- Improve wording of some options of Optimizer Studio Help and some error messages
- Cancel usage of "-j" switch of jq utility thus allowing to use older versions of jq
- Improve embedded gcc example to optimize the example application behavior rather than compilation time
- Embedded gcc knobs: use "empty" as a default for all options, rather than the first value in the list
- Other bug and stability fixes
v2.3.0 (2019-10-31)¶
- Bug and stability fixes
v2.2.0 (2019-10-24)¶
- Reorganize example folder names to group together related or similar examples
- Changed defaults of parameters
min_baseline_samples
andmin_samples_per_config
for better fit to background noise - MySQL embedded knobs are now POSIX shell compliant. bash is no longer required
- Minor fixes in PHP and Apache embedded knobs
- Metrics.csv file: added new columns, reorganized order of columns
- Bug and stability fixes
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 distinguishable 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 distinguishable 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 optimization 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, continuously exploring new knob combinations
- Bug fixes in stopping 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
andexclude_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 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