Priority Queue implementation in PowerDEVS

The model

Based on the conceptual model: https://twiki.cern.ch/twiki/bin/view/Main/TDAQSimulationPhaseI_QoSConceptual

Models

Priority Queue

It is a coupled model composed by:

  • PrioritySelect: selects to which queue each incoming packet should go to. The decision is taken based on the TypeOfService field (defined in the QoSProtocol), and a mapping table (this is not implemented yet)
  • VQueues: this is a Vectorial model that instanciates N queues (this queues uses outport 0 to send packets, and outport 1 to inform all size changes)
  • WRRScheduler: Implements the weighted round-robin from the queues.
    • inport 0: receives queueSize change notification from all queues
    • inport 1: received dequeue requests (from the link)
    • outport 0: upon receiving a dequeue request, it forwards the request to the adequate VQueue according to the WRR algorithm.
The WRRScheduler model was tested using the DEVSUnitTest framework (see https://twiki.cern.ch/twiki/bin/view/Main/PowerDEVSPhaseIUnitTestingFirstAttempt)

Results

Without Priority queues

We set up 3 flows each generating at 1MB/s. The distribution used is constant at 1Khz with packets of 1KB (total of 1MB/s).
We measured the packets arriving at the different sources

Without bottleneck link

bottleneck link = 2Mb/s

With Priority queues, but just RR (not weighted, equivalent to all weights=1)

With Priority queues and WRR

TODOs

  • PrioritySelect mapping table
  • How to arrange Several priorityQueue ports (VDEVS-> very ugly... should we rely in the generator?)
  • How to setup coupled models? the question is were to locate the queue for each port:
    • router+queue+linkinside the node: it requires a connection from the link to the node, one per port)
    • inside the link: does not seem to be good to have the queue inside the link.
    • coupled model=router+queue+link
  • Evaluate if informing all queue size changes affects perfomance severely (could implement VQueue+WRRScheduler as a single atomic model to avoid passing of many event messages)
-- MatiasAlejandroBonaventura - 2016-09-14
Edit | Attach | Watch | Print version | History: r4 < r3 < r2 < r1 | Backlinks | Raw View | WYSIWYG | More topic actions
Topic revision: r4 - 2016-09-16 - MatiasAlejandroBonaventura
 
    • Cern Search Icon Cern Search
    • TWiki Search Icon TWiki Search
    • Google Search Icon Google Search

    Main All webs login

This site is powered by the TWiki collaboration platform Powered by PerlCopyright & 2008-2019 by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding TWiki? Send feedback