Package jline.gen

Class LayeredNetworkGenerator

java.lang.Object
jline.gen.LayeredNetworkGenerator

public class LayeredNetworkGenerator extends Object
A generator object that generates layered queueing network models based on user specification. Characteristics of generated models can be configured via the generator's properties.
  • Constructor Details

    • LayeredNetworkGenerator

      public LayeredNetworkGenerator()
      Constructor with default settings
    • LayeredNetworkGenerator

      public LayeredNetworkGenerator(double[] populationRange, double[] thinkTimeRange, double taskInfProbability, double procInfProbability, double[] taskMultiRange, double[] procMultiRange, double[] hostDemandRange, double[] synchCallRange)
      Constructor with custom settings
      Parameters:
      populationRange - range of reference-task populations
      thinkTimeRange - range of client think times
      taskInfProbability - probability that a task is infinite-server
      procInfProbability - probability that a processor is infinite-server
      taskMultiRange - range of task multiplicities
      procMultiRange - range of processor multiplicities
      hostDemandRange - range of activity host demands
      synchCallRange - range of synchronous call means
  • Method Details

    • setSeed

      public LayeredNetworkGenerator setSeed(long seed)
      Reseeds this generator's internal random source for reproducible generation.
      Parameters:
      seed - the seed value
      Returns:
      this generator (for chaining)
    • generate

      public LayeredNetwork generate(int numClients, int numLevels, int numTasks, int numProcessors)
      Main function to call. Returns a generated LQN model according to specified properties of the LayeredNetworkGenerator object
      Parameters:
      numClients - number of client (reference) tasks
      numLevels - number of task layers
      numTasks - number of non-client tasks, distributed over the levels
      numProcessors - number of processors hosting the non-client tasks
      Returns:
      the generated layered network
    • setPopulationRange

      public void setPopulationRange(double[] range)
    • setThinkTimeRange

      public void setThinkTimeRange(double[] range)
    • setTaskInfProbability

      public void setTaskInfProbability(double probability)
    • setProcInfProbability

      public void setProcInfProbability(double probability)
    • setTaskMultiRange

      public void setTaskMultiRange(double[] range)
    • setProcMultiRange

      public void setProcMultiRange(double[] range)
    • setHostDemandRange

      public void setHostDemandRange(double[] range)
    • setSynchCallRange

      public void setSynchCallRange(double[] range)
    • getPopulationRange

      public double[] getPopulationRange()
    • getThinkTimeRange

      public double[] getThinkTimeRange()
    • getTaskInfProbability

      public double getTaskInfProbability()
    • getProcInfProbability

      public double getProcInfProbability()
    • getTaskMultiRange

      public double[] getTaskMultiRange()
    • getProcMultiRange

      public double[] getProcMultiRange()
    • getHostDemandRange

      public double[] getHostDemandRange()
    • getSynchCallRange

      public double[] getSynchCallRange()
    • sampleIntegerValue

      public int sampleIntegerValue(double[] range)
      Samples an integer value from a given range
      Parameters:
      range - two-element range, whose bounds are rounded inwards
      Returns:
      an integer in [ceil(range[0]), floor(range[1])]
    • sampleRealValue

      public double sampleRealValue(double[] range)
      Samples a real value from a given range
      Parameters:
      range - two-element range
      Returns:
      a real value in [range[0], range[1]]
    • chooseBooleanValue

      public boolean chooseBooleanValue(double probability)
      Chooses a boolean value for a given probability
      Parameters:
      probability - probability of returning true
      Returns:
      true with the given probability
    • makeIntegerVector

      public int[] makeIntegerVector(int length, int sum)
      Makes a vector of positive integers with given length and sum
      Parameters:
      length - number of elements
      sum - required sum of the elements
      Returns:
      a vector of length positive integers summing to sum