Parameter

A parameter is a property of the system that can be applied and tuned to change the system's behavior. Akamas optimizes systems by changing parameters to achieve the stated goal while respecting the defined constraints.

Examples of a parameter include:

  • Configuration knobs (e.g. JVM garbage collection type)

  • Resource settings (e.g. amount of memory allocated to a Spark job)

  • Algorithms settings (e.g. learning rate of a neural network)

  • Architectural properties (e.g. how many caching layers in an enterprise application)

  • Type of resources (e.g. AWS EC2 instance or EBS volume type)

  • Any other thing (e.g. amount of sugar in your cookies)

The following table describes the parameter types:

Prameter TypeDomainAkamas normalized domain

REAL

real values

Akamas normalizes the values

[0.0, 10.0] → [0.0, 1.0]

INTEGER

integer values

Akamas converts the integer into real and then normalizes the values

[0, 3] → [0.0, 3.0] → [0.0, 1.0]

ORDINAL

integer values

Akamas converts the category into real and then normalizes the values

['a', 'b', 'c'] → [0, 2] → [0.0, 2.0] → [0.0, 1.0]

CATEGORICAL

categorical values

Akamas converts each param value into a new param that may be either 1.0 (active) or 0.0 (inactive), only 1 of these new params can be "active" during each exp:

['a', 'b', 'c'] → [[0.0, 1.0], [0.0, 1.0], [0.0, 1.0]]

Construct

A parameter is described by the following properties:

  • a name that uniquely identifies the parameter

  • a description that clarifies the semantics of the parameter

  • a unit that defines the unit of measurement used by the parameter

Although users can create parameters with any name, we suggest using the naming convention context_parameter where

  • context refers to the technology or more general environment in which that metric is defined (e.g. elasticsearch, jvm, mysql, spark)

  • parameter is the parameter name in the original context (e.g. gcType, numberOfExecutors)

This makes it possible to identify parameters more easily and avoid any potential name clash.

The construct to be used to define a parameter is described on the Parameter template page.

User Interface

Parameters are displayed in the Akamas UI when drilling down to each system component.

For each optimization study, the optimization scope is the set of parameters that Akamas can change to achieve the defined optimization goal.

Last updated