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, 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, getNumEpochs, getProcessList, getUserDefinedFunction, getUserDefinedFunctions, handleAbleEvent, invokeUserDefinedFunction, isActiveDataSource, propertyChange, quitAll, quitEnabledEventProcessing, removeAllBeans, removeAllConnections, removeAllEventConnections, removeBean, removeBean, removeBeans, removeEventConnection, removeUserDefinedFunction, reset, 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, getInputBufferAsStringArray, getInputBufferContents, getLogger, getName, getOutputBuffer, getOutputBuffer, getOutputBufferAsStringArray, getOutputBufferContents, getParent, 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, removePropertyChangeListener, removePropertyConnection, removeSourceBufferConnection, removeStateChangeListener, restartEnabledEventProcessing, restoreFromFile, restoreFromFile, restoreFromSerializedFile, restoreFromStream, resumeEnabledEventProcessing, saveToFile, saveToFile, setAbleEventProcessingEnabled, setChanged, setComment, setFileName, setInputBuffer, setInputBuffer, setLogger, setName, setOutputBuffer, setOutputBuffer, setParent, 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, getState, getTraceLogger, init, isChanged, process, setChanged, setComment, setLogger, setName, setParent, setState, setTraceLogger |
Methods inherited from interface com.ibm.able.AbleDataBufferManager |
addDestBufferConnection, addSourceBufferConnection, getDestBufferConnections, getInputBuffer, getInputBuffer, getInputBufferAsStringArray, getInputBufferContents, getOutputBuffer, getOutputBuffer, 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 interface:
AbleBean
- Initialize and configure the bean.
The bean's state changes to
AbleState.Initiated
or
AbleState.Waiting
.
If the implementation provides property change notification,
decide whether to send only one property change event or
an event for each property.
A bean implementing AbleBeanContainer
may choose to call this method
on each bean it contains and accumulate errors from each contained bean.
- Overrides:
init
in class AbleObject
- Following copied from interface:
com.ibm.able.AbleBean
- Throws:
AbleException
- If an error occurs.
process
public void process()
throws AbleException
- do a single control cycle
- Overrides:
process
in class AbleDefaultAgent
- Following copied from class:
com.ibm.able.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
trainController
protected void trainController()
throws AbleException
- use the errors computed by back propagating through the system model
to adjust the controller neural network
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
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
Copyright
public static java.lang.String Copyright()
- Determine the copyright of this class.
- Returns:
- A String containing this class's copyright statement.
(C) Copyright IBM Corporation 1999, 2003