Hi Pavan,
No for benchmark traffic, the injection rate is directly controlled by your benchmark, via your coherence protocol. The rate of memory requests from the benchmark will result in cache/directory controllers sending packets in the network (requests or responses) depending on cache hits/misses etc. You could in principle add some logic at the network interfaces to control the injection rate etc if you want, but then the whole point of running a benchmark is to get a realistic injection rate rather than a synthetic one. If you want to inject controlled traffic, but something that is more realistic than pure uniform random, you could perhaps try to model a more complex traffic pattern inside networktest.cc

cheers,
Tushar


On 04/30/2012 03:21 PM, Pavan Poluri wrote:
Hi Tushar,

Even I observed that the network behavior kind of stabilized by 10M cycles. I was not sure if the behavior would change for large simulation cycles. I just wanted to check for my self that the behavior holds for some very large number of simulation cycles. Now that you told me that the network behavior stabilizes by 10M cycles, I need not go to the extent of 10^11 cycles.

I have another question. When injecting synthetic traffic we control the injection rate via the --injectionrate argument. Is it possible to control the injection rate of benchmark traffic too?

Thanks,
Pavan

On Apr 30, 2012, at 12:02 PM, Tushar Krishna wrote:

Hmm, you probably need to take a look at
src/sim/simulate.cc
where num_cycles gets maxed out at MaxTick (not sure where this is defined, you can grep for it) if there is an overflow.
You might need to change Tick to long long int here.

BTW am curious why you need to simulate a network-only protocol (with no real application) for 10^11 cycles? From my experience the network behavior stabilizes by 1M or 10M cycles.

- Tushar


On 04/30/2012 02:48 PM, Pavan Poluri wrote:
Hello,

I would like to run the network test protocol for simcyles = 10^11 and greater. Currently simcycles is of type Tick and it is not able to hold the value of 10^11. My question is where do I need to change the type for simcycles so that it is reflected globally. I tried changing the type of simcycles from *Tick* to*long long int* in networktest.hh to see if it works. It did not work. It still reported the same thing it reported when simcycles was of type Tick.

Thanks for your time.

Thanks,
Pavan


On Sun, Apr 29, 2012 at 1:57 PM, Tushar Krishna <[email protected] <mailto:[email protected]>> wrote:

    You can specify --random_seed=xxx in the command line.

    Yes numPacketsSent in networktest.cc is a fine stat to use.
    I thought you were estimating this from ruby.stats
    Control packets in vnet0 and vnet1 are also converted into flits.
    All I was saying is that control packets from vnet 0 and vnet 1
    get converted into 1 flit, while data packets in vnet 2 get
    converted into 5 flits.
    So if you look at ruby.stats, the number of total packets
    injected will be = flits_injected_vnet0 + flits_injected_vnet1
    +(flits_injected_vnet2)/5

    - Tushar

    On Apr 29, 2012, at 4:43 PM, Pavan Poluri wrote:

    Hi Tushar,

    Thanks for the quick reply. So if I run the experiment with
    different random seeds over a large number of cycles the
    average number of packets over all the runs should be
    injection_rate*simCycles.

    I see networktest.cc calls a function random() to get the
    random number. Where do I change the seeds so that random()
    runs on these different seeds?

    Dividing the number of flits stat in ruby.stats by 5 gives the
    total number of packets injected. But I want to know the number
    of packets injected by each node. That is why I started using
    numPacketsSent in networtest.cc as the indicator for number of
    packets sent by a node.

    So the control packets inserted into Vnet 0 and Vnet 1 are not
    converted into flits and these flits do not count in the total
    flits injected stat in ruby.stats?

    Thanks for your time.

    Thanks,
    Pavan

    On Sun, Apr 29, 2012 at 1:05 PM, Tushar Krishna
    <[email protected] <mailto:[email protected]>> wrote:

        Hi Pavan,
        A couple of things to note:
        1) 0.01 is an average injection rate. So a node *could*
        inject more than 10 packets (but not a lot more).
        The implementation is basically a bernoulli trial, where
        every cycle you generate a random number and decide to
        inject or not based on whether it is less than or greater
        than the injection rate.
        If you run the experiment with different random seeds, (and
        for large number of cycles each time), the average should
        be (injection_rate * simCycles).

        2) Vnet 2 injects 5-flit packets. So you should divide the
        flits injected stat from it by 5 to get packets injected.

        Let me know if you have more questions.

        - Tushar


        On Apr 29, 2012, at 3:25 PM, Pavan Poluri wrote:

        > Hello,
        >
        > I am trying to simulate the interconnection network using
        the Network_test protocol. My question is on the file
        networktest.cc that is responsible for generating and
        sending the packets. I understand that if I use
        --fixed-pkts and --maxpackets options together I enforce
        each cpu node to only inject maxpackets number of packets.
        So even before the simulation, if simCycles is sufficiently
        large I know that each node will inject maxpackets number
        of packets. I wanted the number of packets injected by each
        node to be random. So I did not use --fixed-pkts and
        --maxpackets options.
        >
        > Consider the following case. I gave the injection rate to
        be 0.01 and simCycles to be 1000. I did not use
        --fixed-pkts and --maxpackets options. As a result at the
        end of simulation each node injected different number of
        packets. But, some nodes injected more packets than
        1000*0.01 = 10 packets. This is where I am confused. How
        can a node inject more packets than the product of
        injectionrate and simCycles even though the maxpackets
        option is not enabled?
        >
        > Thanks for your time.
        >
        > Thanks,
        > Pavan
        > _______________________________________________
        > gem5-users mailing list
        > [email protected] <mailto:[email protected]>
        > http://m5sim.org/cgi-bin/mailman/listinfo/gem5-users

        _______________________________________________
        gem5-users mailing list
        [email protected] <mailto:[email protected]>
        http://m5sim.org/cgi-bin/mailman/listinfo/gem5-users


    _______________________________________________
    gem5-users mailing list
    [email protected] <mailto:[email protected]>
    http://m5sim.org/cgi-bin/mailman/listinfo/gem5-users


    _______________________________________________
    gem5-users mailing list
    [email protected] <mailto:[email protected]>
    http://m5sim.org/cgi-bin/mailman/listinfo/gem5-users



_______________________________________________
gem5-users mailing list
[email protected]
http://m5sim.org/cgi-bin/mailman/listinfo/gem5-users
_______________________________________________
gem5-users mailing list
[email protected] <mailto:[email protected]>
http://m5sim.org/cgi-bin/mailman/listinfo/gem5-users


_______________________________________________
gem5-users mailing list
[email protected]
http://m5sim.org/cgi-bin/mailman/listinfo/gem5-users
_______________________________________________
gem5-users mailing list
[email protected]
http://m5sim.org/cgi-bin/mailman/listinfo/gem5-users

Reply via email to