Overview | Package | Class | Use | Tree | Serialized | Deprecated | Index | Help
| ABLE 2.3.0 07/13/2005 14:21:00
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## com.ibm.able.autotune
Class BasicNeuralAutotuneController

    java.lang.Object
      com.ibm.able.AbleObject
          com.ibm.able.AbleDefaultAgent
              com.ibm.able.autotune.BaseAutotuneController
                  com.ibm.able.autotune.BasicNeuralAutotuneController

All Implemented Interfaces:
  AbleAgent, AbleBean, AbleBeanContainer, AbleDataBufferManager, AbleEventListener, AbleEventListenerManager, AbleEventQueueManager, AbleEventQueueProcessor, AblePropertyChangeManager, AbleSerializable, AbleUserDefinedFunctionManager, AutotuneController, java.util.EventListener, java.beans.PropertyChangeListener, java.io.Serializable

public class BasicNeuralAutotuneController
extends BaseAutotuneController
implements AutotuneController

This class implements a basic neural controller. It features a neural system model that is trained with off-line data and a neural controller that is adapted on-line The model can predict one or more service level metrics given a set of configuration, workload, service level metrics and tuning controls The controller can specify one or more tuning control values given a set of configuration, workload, service levels, and current tuning control metrics How to use this controller .... 1. define the metadata for the model and controller using a text editor NOTE: the field names should match the metric names exactly 2. instantiate a neural controller agent 3. drop in a model neural prediction agent 4. drop in a controller neural prediction agent 5. Select the metrics ... must be superset of those fields names in the 2 dfn files 6. Select the target tuning control 7. Go to the model and train it off-line

See Also:
  Serialized Form

Field Summary
`protected double` | `actualPerf`
`protected AutotuneAdaptor` | `adaptor`
`protected AbleNeuralPredictionAgent` | `controller`
`protected java.lang.String` | `controllerDataSetFileName`
`protected double[]` | `controls`
`protected double` | `desiredPerf`
`protected double` | `error`
`protected AbleNeuralPredictionAgent` | `model`
`protected java.lang.String` | `modelDataSetFileName`

Fields inherited from class com.ibm.able.autotune.BaseAutotuneController
`selectedMetrics`

Fields inherited from class com.ibm.able.AbleDefaultAgent
`activeDataSource, defaultName, eventConnections, myBeans, numEpochs, processList, processListOK, userDefinedFunctions`

Fields inherited from class com.ibm.able.AbleObject
`changed, chgSupport, comment, dataFlowEnabled, destBufferConnections, eventQueue, fileName, inputBuffer, listeners, logger, name, outputBuffer, parent, properties, propertyConnectionMgr, sourceBufferConnections, state, stateChgSupport, trace`

Constructor Summary
`BasicNeuralAutotuneController()`

Method Summary
`protected void` | `backPropThroughModel()` given the errors in the output units back propagate them through the system model and extract the corresponding input deltas
`void` | `computeControlActions()` compute the control actions for the target system or application by doing a forward pass through the controller neural network
`void` | `computeErrors()` compute the differences between actual and desired service levels for one or more service level metrics
`AutotuneAdaptor` | `getAdaptor()`
`java.lang.String` | `getControllerDataSetFileName()`
`java.lang.String` | `getModelDataSetFileName()`
`void` | `init()` Initialize the agent.
`void` | `process()` do a single control cycle
`void` | `setAdaptor(AutotuneAdaptor adaptor)` Set the active Adaptor.
`void` | `setControllerDataSetFileName(java.lang.String name)`
`void` | `setModelDataSetFileName(java.lang.String name)`
`protected void` | `trainController()` use the errors computed by back propagating through the system model to adjust the controller neural network

Methods inherited from class com.ibm.able.autotune.BaseAutotuneController
`getLogData, getLogDataFileName, getSelectedMetrics, isLogData, setControlActions, setLogData, setLogDataFileName, setSelectedMetrics`

Methods inherited from class com.ibm.able.AbleDefaultAgent
`addBean, addBeans, addEventConnection, addUserDefinedFunction, buildProcessList, clsNm, containsBean, containsBean, containsUserDefinedFunction, debugTrace, generateUniqueName, getBean, getBeans, getDataSource, getEventConnections, getNumEpochs, getProcessList, getUserDefinedFunction, getUserDefinedFunctions, handleAbleEvent, initAllBeans, invokeUserDefinedFunction, isActiveDataSource, propertyChange, quitAll, quitEnabledEventProcessing, removeAllBeans, removeAllConnections, removeAllEventConnections, removeBean, removeBean, removeBeans, removeEventConnection, removeUserDefinedFunction, reset, resetAllBeans, resumeAll, setActiveDataSource, setDataFlowEnabled, setProcessList, setUserDefinedFunctions, suspendAll`

Methods inherited from class com.ibm.able.AbleObject
`addAbleEventListener, addDestBufferConnection, addPropertyChangeListener, addPropertyConnection, addSourceBufferConnection, addStateChangeListener, dataChanged, firePropertyChange, flushAbleEventQueue, getAbleEventListeners, getAbleEventProcessingEnabled, getAbleEventQueueSize, getComment, getDestBufferConnections, getFileName, getInputBuffer, getInputBuffer, getInputBufferAsString, getInputBufferAsStringArray, getInputBufferContents, getLogger, getName, getOutputBuffer, getOutputBuffer, getOutputBufferAsString, getOutputBufferAsStringArray, getOutputBufferContents, getParent, getProperties, getProperty, getPropertyChangeListeners, getPropertyConnectionManager, getSleepTime, getSourceBufferConnections, getState, getTraceLogger, hasInputBuffer, hasOutputBuffer, init, isAbleEventPostingEnabled, isAbleEventProcessingEnabled, isChanged, isConnectable, isDataFlowEnabled, isTimerEventProcessingEnabled, notifyAbleEventListeners, process, processAbleEvent, processBufferConnections, processNoEventProcessingEnabledSituation, processTimerEvent, removeAbleEventListener, removeAllAbleEventListeners, removeAllBufferConnections, removeAllPropertyConnections, removeDestBufferConnection, removeProperty, removePropertyChangeListener, removePropertyConnection, removeSourceBufferConnection, removeStateChangeListener, restartEnabledEventProcessing, restoreFromFile, restoreFromFile, restoreFromSerializedFile, restoreFromStream, resumeEnabledEventProcessing, saveToFile, saveToFile, setAbleEventProcessingEnabled, setChanged, setComment, setFileName, setInputBuffer, setInputBuffer, setLogger, setName, setOutputBuffer, setOutputBuffer, setParent, setProperties, setProperty, setSleepTime, setState, setTimerEventProcessingEnabled, setTraceLogger, sourceConnectionsOK, startEnabledEventProcessing, suspendEnabledEventProcessing`

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Methods inherited from interface com.ibm.able.autotune.AutotuneController
`setControlActions`

Methods inherited from interface com.ibm.able.AbleBean
`getComment, getLogger, getName, getParent, getProperties, getProperty, getState, getTraceLogger, init, isChanged, process, removeProperty, setChanged, setComment, setLogger, setName, setParent, setProperties, setProperty, setState, setTraceLogger`

Methods inherited from interface com.ibm.able.AbleDataBufferManager
`addDestBufferConnection, addSourceBufferConnection, getDestBufferConnections, getInputBuffer, getInputBuffer, getInputBufferAsString, getInputBufferAsStringArray, getInputBufferContents, getOutputBuffer, getOutputBuffer, getOutputBufferAsString, getOutputBufferAsStringArray, getOutputBufferContents, getSourceBufferConnections, hasInputBuffer, hasOutputBuffer, isConnectable, isDataFlowEnabled, processBufferConnections, removeAllBufferConnections, removeDestBufferConnection, removeSourceBufferConnection, setInputBuffer, setInputBuffer, setOutputBuffer, setOutputBuffer`

Methods inherited from interface com.ibm.able.AbleEventListenerManager
`addAbleEventListener, dataChanged, getAbleEventListeners, notifyAbleEventListeners, removeAbleEventListener`

Methods inherited from interface com.ibm.able.AbleEventQueueManager
`flushAbleEventQueue, getAbleEventProcessingEnabled, getAbleEventQueueSize, getSleepTime, isAbleEventPostingEnabled, isAbleEventProcessingEnabled, isTimerEventProcessingEnabled, restartEnabledEventProcessing, resumeEnabledEventProcessing, setAbleEventProcessingEnabled, setSleepTime, setTimerEventProcessingEnabled, startEnabledEventProcessing, suspendEnabledEventProcessing`

Methods inherited from interface com.ibm.able.AbleEventQueueProcessor
`processAbleEvent, processNoEventProcessingEnabledSituation, processTimerEvent`

Methods inherited from interface com.ibm.able.AblePropertyChangeManager
`addPropertyChangeListener, addPropertyConnection, getPropertyChangeListeners, getPropertyConnectionManager, removeAllPropertyConnections, removePropertyChangeListener, removePropertyConnection`

Methods inherited from interface com.ibm.able.AbleSerializable
`getFileName, restoreFromFile, restoreFromFile, saveToFile, saveToFile, setFileName`

Methods inherited from interface com.ibm.able.AbleBeanContainer
`getName`

Field Detail

### adaptor

    protected AutotuneAdaptor adaptor

### controller

    protected AbleNeuralPredictionAgent controller

### model

    protected AbleNeuralPredictionAgent model

### modelDataSetFileName

    protected java.lang.String modelDataSetFileName

### controllerDataSetFileName

    protected java.lang.String controllerDataSetFileName

### controls

    protected double[] controls

### desiredPerf

    protected double desiredPerf

### error

    protected double error

### actualPerf

    protected double actualPerf

Constructor Detail

### BasicNeuralAutotuneController

    public BasicNeuralAutotuneController()
                                  throws AbleException

Method Detail

### setModelDataSetFileName

    public void setModelDataSetFileName(java.lang.String name)

### getModelDataSetFileName

    public java.lang.String getModelDataSetFileName()

### setControllerDataSetFileName

    public void setControllerDataSetFileName(java.lang.String name)

### getControllerDataSetFileName

    public java.lang.String getControllerDataSetFileName()

### init

    public void init()
              throws AbleException

  Description copied from class: `AbleDefaultAgent`
  Initialize the agent. This implementation simply calls super.init() to set the agent state.

  Contained beans are not initialized explicitly because some agents manage their contained beans directly. To initialize all contained beans, use `AbleDefaultAgent.initAllBeans()`.

  Specified by:
    `init` in interface `AbleBean`
  Overrides:
    `init` in class `AbleDefaultAgent`
  Throws:
    `AbleException`
  See Also:
    `AbleObject.init()`

### process

    public void process()
                 throws AbleException

  do a single control cycle

  Specified by:
    `process` in interface `AbleBean`
  Overrides:
    `process` in class `AbleDefaultAgent`
  Throws:
    `AbleException` - If an error occurs. Errors from each contained bean are accumulated.

### setAdaptor

    public void setAdaptor(AutotuneAdaptor adaptor)

  Description copied from interface: `AutotuneController`
  Set the active Adaptor.

  Specified by:
    `setAdaptor` in interface `AutotuneController`
  Overrides:
    `setAdaptor` in class `BaseAutotuneController`

### getAdaptor

    public AutotuneAdaptor getAdaptor()

### backPropThroughModel

    protected void backPropThroughModel()
                                 throws AbleException

  given the errors in the output units back propagate them through the system model and extract the corresponding input deltas

  Throws:
    `AbleException`

### trainController

    protected void trainController()
                            throws AbleException

  use the errors computed by back propagating through the system model to adjust the controller neural network

  Throws:
    `AbleException`

### computeErrors

    public void computeErrors()
                       throws AbleException

  compute the differences between actual and desired service levels for one or more service level metrics

  Specified by:
    `computeErrors` in interface `AutotuneController`
  Overrides:
    `computeErrors` in class `BaseAutotuneController`
  Throws:
    `AbleException`

### computeControlActions

    public void computeControlActions()
                               throws AbleException

  compute the control actions for the target system or application by doing a forward pass through the controller neural network

  Specified by:
    `computeControlActions` in interface `AutotuneController`
  Overrides:
    `computeControlActions` in class `BaseAutotuneController`
  Throws:
    `AbleException`

Overview | Package | Class | Use | Tree | Serialized | Deprecated | Index | Help
| ABLE 2.3.0 07/13/2005 14:21:00
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

(C) Copyright IBM Corporation 1999, 2005