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
| 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 |
| 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.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.AbleEventQueueManager |
flushAbleEventQueue, getAbleEventProcessingEnabled, getAbleEventQueueSize, getSleepTime, isAbleEventPostingEnabled, isAbleEventProcessingEnabled, isTimerEventProcessingEnabled, restartEnabledEventProcessing, resumeEnabledEventProcessing, setAbleEventProcessingEnabled, setSleepTime, setTimerEventProcessingEnabled, startEnabledEventProcessing, suspendEnabledEventProcessing |
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
BasicNeuralAutotuneController
public BasicNeuralAutotuneController()
throws AbleException
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
(C) Copyright IBM Corporation 1999, 2005