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 voidevolveLoad(tools.descartes.dlim.generator.ModelEvaluator loadEvaluator)Evolve the load.protected voidevolveWork(org.palladiosimulator.pcm.parameter.VariableCharacterisation workParameter, tools.descartes.dlim.generator.ModelEvaluator evaluator)Evolves a workload parameter.protected org.scaledl.usageevolution.UsagegetCorrespondingUsage()Get the Usage updated bythis.protected doublegetCurrentTime()Gets the current simulation time.protected doublegetDLIMFinalDuration()The length ofthis' DLIM sequence.protected tools.descartes.dlim.generator.ModelEvaluatorgetLoadEvaluator()Get the load evaluator forthis.protected abstract doublegetNewRate(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.voidstop()Stops the usage evolver from being scheduled in the simulation.protected voidtriggerInternal()-
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:
triggerInternalin 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.
-
-