Menu

Processor and Task options

Help
2018-11-07
2018-11-11
  • Rajarshi Das

    Rajarshi Das - 2018-11-07

    Hello

    I am trying out LINE 2.0.0.

    Following is the call for creating a Processor:
    Processor(model, name, multiplicity, scheduling, quantum, speedFactor)

    I have few questions:

    a. How do we specify an infinite multiplicity?
    would it be:
    Processor(model, 'myproc', 1, SchedStrategy.INF) ?

    b. I also want to understand the difference between multiplicity and sched strategy.
    From what I understand, multiplicity of Processor represents the number of hardware units/ servers available to handle the tasks.
    SchedStrategy is the method adopted to serve incoming requests (on the Processor in this case).
    Is this understanding correct?
    It would be nice to have a 2-liner for each of the scheduling strategies mentioned under
    https://github.com/line-solver/line/wiki/Network-models#creating-a-network-and-its-nodes
    and a few examples for each (including what combinations of multiplicity and schedstrategy for LQN make sense and what don't).

    c. W.r.t. Task
    Task(model, name, multiplicity, scheduling, thinkTime)
    What does scheduling strategy mean in the context of a task?

    Thanks.
    - Rajarshi

     
  • Giuliano Casale

    Giuliano Casale - 2018-11-11

    Hi Rajarshi

    a. Yes, SchedStrategy.INF

    b. Yes, your understanding is correct. Thanks, I will update the manual with more discussion.

    c. Check the LQNS tutorial: http://www.sce.carleton.ca/rads/lqns/lqn-documentation/tutorialh.pdf

    For example, if you have requests from a client to a web server that process them in FCFS order, while running on a CPU, you would have that the web server task has FCFS scheduling, while the scheduling at the processor CPU is PS.

    To see how this is reflected in the solution algorithm, note that in LINE we use SRVN-type decomposition, so the LQN is decomposed into a collection of 2-station sub-models and then an iterative method is used to solve for the performance metrics. You can check the definition of the i-th submodel by typing:
    model.ensemble{i}.jsimgView

    In each submodel, the second station maps into one (and only one) task or processor of the LQN. The first station is a "surrogate delay" that represents how the rest of the LQN elements send requests to that task or that processor. So if you check the scheduling of the second station you will see that it maps to the task (or processor) scheduling you specified in the LQN.

    Giuliano

     

Log in to post a comment.

Want the latest updates on software, tech news, and AI?
Get latest updates about software, tech news, and AI from SourceForge directly in your inbox once a month.