Class PeriodicallyTriggeredUsageEvolver
- java.lang.Object
-
- de.uka.ipd.sdq.simulation.abstractsimengine.SimpleEventBasedSimEntity
-
- org.palladiosimulator.simulizar.simulationevents.PeriodicallyTriggeredSimulationEntity
-
- org.palladiosimulator.simulizar.usagemodel.PeriodicallyTriggeredUsageEvolver
-
- All Implemented Interfaces:
de.uka.ipd.sdq.simulation.abstractsimengine.IEntity
- Direct Known Subclasses:
LoopingUsageEvolver
,StretchedUsageEvolver
public abstract class PeriodicallyTriggeredUsageEvolver extends PeriodicallyTriggeredSimulationEntity
Usage evolver which updates the workload according to a Usage Evolution model.
-
-
Field Summary
Fields Modifier and Type Field Description protected EntityReference<org.palladiosimulator.pcm.usagemodel.UsageScenario>
evolvedScenario
-
Constructor Summary
Constructors Constructor Description PeriodicallyTriggeredUsageEvolver(double firstOccurrence, double delay, EntityReference<org.palladiosimulator.pcm.usagemodel.UsageScenario> evolvedScenario, org.palladiosimulator.analyzer.workflow.blackboard.PCMResourceSetPartition pcmPartition, de.uka.ipd.sdq.simulation.abstractsimengine.ISimEventFactory simEventFactory, de.uka.ipd.sdq.simulation.abstractsimengine.ISimulationTimeProvider timeProvider)
Constructs the looping usage evolver.
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description protected void
evolveLoad(tools.descartes.dlim.generator.ModelEvaluator loadEvaluator)
Evolve the load.protected void
evolveWork(org.palladiosimulator.pcm.parameter.VariableCharacterisation workParameter, tools.descartes.dlim.generator.ModelEvaluator evaluator)
Evolves a workload parameter.protected org.scaledl.usageevolution.Usage
getCorrespondingUsage()
Get the Usage updated bythis
.protected double
getCurrentTime()
Gets the current simulation time.protected double
getDLIMFinalDuration()
The length ofthis
' DLIM sequence.protected tools.descartes.dlim.generator.ModelEvaluator
getLoadEvaluator()
Get the load evaluator forthis
.protected abstract double
getNewRate(tools.descartes.dlim.generator.ModelEvaluator loadEvaluator)
Get the new rate of the Usage or workload parameter characterization.protected Map<org.palladiosimulator.pcm.parameter.VariableCharacterisation,tools.descartes.dlim.generator.ModelEvaluator>
getWorkEvaluators()
Gets all the Work Evaluators for the Work Parameter evolutions ofthis
.void
stop()
Stops the usage evolver from being scheduled in the simulation.protected void
triggerInternal()
-
Methods inherited from class org.palladiosimulator.simulizar.simulationevents.PeriodicallyTriggeredSimulationEntity
entityRoutine, getSimulationTimeOfNextEventTrigger, setDelay, stopScheduling
-
-
-
-
Field Detail
-
evolvedScenario
protected final EntityReference<org.palladiosimulator.pcm.usagemodel.UsageScenario> evolvedScenario
-
-
Constructor Detail
-
PeriodicallyTriggeredUsageEvolver
public PeriodicallyTriggeredUsageEvolver(double firstOccurrence, double delay, EntityReference<org.palladiosimulator.pcm.usagemodel.UsageScenario> evolvedScenario, org.palladiosimulator.analyzer.workflow.blackboard.PCMResourceSetPartition pcmPartition, de.uka.ipd.sdq.simulation.abstractsimengine.ISimEventFactory simEventFactory, de.uka.ipd.sdq.simulation.abstractsimengine.ISimulationTimeProvider timeProvider)
Constructs the looping usage evolver.- Parameters:
rtState
- SimuLizar runtime state.firstOccurrence
- First point in time at which the evolver should evolve the load.delay
- The interval in which the evolver should evolve the load.evolvedScenario
- The evolved scenario.
-
-
Method Detail
-
stop
public void stop()
Stops the usage evolver from being scheduled in the simulation.
-
getLoadEvaluator
protected tools.descartes.dlim.generator.ModelEvaluator getLoadEvaluator()
Get the load evaluator forthis
.- Returns:
- The load evaluator.
-
getCorrespondingUsage
protected org.scaledl.usageevolution.Usage getCorrespondingUsage()
Get the Usage updated bythis
.- Returns:
- the Usage updated by
this
.
-
getWorkEvaluators
protected Map<org.palladiosimulator.pcm.parameter.VariableCharacterisation,tools.descartes.dlim.generator.ModelEvaluator> getWorkEvaluators()
Gets all the Work Evaluators for the Work Parameter evolutions ofthis
.- Returns:
- The Work Evaluators for the Work Parameter evolutions of
this
.
-
triggerInternal
protected void triggerInternal()
- Specified by:
triggerInternal
in classPeriodicallyTriggeredSimulationEntity
-
getDLIMFinalDuration
protected double getDLIMFinalDuration()
The length ofthis
' DLIM sequence.- Returns:
- The length of
this
' DLIM sequence.
-
getCurrentTime
protected double getCurrentTime()
Gets the current simulation time.- Returns:
- The current time.
-
evolveLoad
protected void evolveLoad(tools.descartes.dlim.generator.ModelEvaluator loadEvaluator)
Evolve the load.- Parameters:
loadEvaluator
- DLIM evaluator used to fetch the load at the current point in time.
-
getNewRate
protected abstract double getNewRate(tools.descartes.dlim.generator.ModelEvaluator loadEvaluator)
Get the new rate of the Usage or workload parameter characterization.- Parameters:
loadEvaluator
- The DLIM evaluator used for the evaluation.- Returns:
- The new Usage or workload parameter characterization.
-
evolveWork
protected void evolveWork(org.palladiosimulator.pcm.parameter.VariableCharacterisation workParameter, tools.descartes.dlim.generator.ModelEvaluator evaluator)
Evolves a workload parameter.- Parameters:
workParameter
- The evolved parameter.evaluator
- The evaluator used for evaluating DLIM sequence.
-
-