Example #1
0
    def run_command(args, plt):
        # read in all stats
        stats = []
        for stat in args.stats:
            gs = gridstats.GridStats()
            gs.read(stat)
            stats.append(gs)

        # create the LoadRate stats object
        lrstats = ssplot.LoadRateStats(args.start, args.stop, args.step, stats)

        # determine fields to plot
        fields = ssplot.LoadRateStats.FIELDS

        # gather data
        xdata = lrstats.data['Injected']
        ydatas = []
        for field in fields:
            ydatas.append(lrstats.data[field])

        # create x and y axis labels
        xlabel = 'Injected Rate (%)'
        ylabel = 'Delivered Rate (%)'

        # plot
        mlp = ssplot.MultilinePlot(plt, xdata, ydatas)
        mlp.set_xlabel(xlabel)
        mlp.set_ylabel(ylabel)
        mlp.set_data_labels(fields)
        mlp.apply_args(args, *LoadRate._SKIP)
        mlp.plot(args.plotfile)

        return 0
Example #2
0
    def run_command(args, plt):
        # create a sample stats object of latencies
        stats = gridstats.GridStats()
        stats.read(args.ifile)

        # determine the fields and data labels to plot
        fields = ssplot.LoadLatencyStats.FIELDS
        if not args.minimum:
            fields.remove('Minimum')
        fields = list(reversed(fields))

        # gather data
        xdata = stats.row_names()
        ydatas = []
        for field in fields:
            ydatas.append(stats.get_column(field))

        # create x and y axis labels
        xlabel = 'Time'
        ylabel = 'Latency'
        if args.units:
            ylabel += ' ({0})'.format(args.units)

        # plot
        mlp = ssplot.MultilinePlot(plt, xdata, ydatas)
        mlp.set_xlabel(xlabel)
        mlp.set_ylabel(ylabel)
        mlp.set_data_labels(fields)
        mlp.apply_args(args, *TimeLatency._SKIP)
        mlp.plot(args.plotfile)

        return 0
Example #3
0
    def run_command(args, plt):
        # create a sample stats object of latencies
        stats = gridstats.GridStats()
        stats.read(args.ifile)

        # determine the fields and data labels to plot
        fields = ['AveMinHops', 'AveHops', 'AveNonMinHops']
        labels = ['Minimal Hops', 'Total Hops', 'Non-Minimal Hops']
        if not args.non_minimal:
            fields = fields[:-1]
            labels = labels[:-1]

        # gather data
        xdata = stats.row_names()
        ydatas = []
        for field in fields:
            ydatas.append(stats.get_column(field))

        # create x and y axis labels
        xlabel = 'Time'
        ylabel = 'Average Hops'

        # plot
        mlp = ssplot.MultilinePlot(plt, xdata, ydatas)
        mlp.set_xlabel(xlabel)
        mlp.set_ylabel(ylabel)
        mlp.set_data_labels(labels)
        mlp.apply_args(args, *TimeAverageHops._SKIP)
        mlp.plot(args.plotfile)

        return 0
Example #4
0
  def run_command(args, plt):
    # create a sample stats object of latencies
    stats = gridstats.GridStats()
    stats.read(args.ifile)

    # determine the fields and data labels to plot
    fields = ['PerMinimal', 'PerNonMinimal']
    labels = ['Minimal %', 'Non-Minimal %']

    # gather data
    xdata = stats.row_names()
    ydatas = []
    for field in fields:
      ydatas.append(stats.get_column(field))

    # create x and y axis labels
    xlabel = 'Time'
    ylabel = 'Packets (%)'

    # plot
    mlp = ssplot.MultilinePlot(plt, xdata, ydatas)
    mlp.set_xlabel(xlabel)
    mlp.set_ylabel(ylabel)
    mlp.set_data_labels(labels)
    mlp.apply_args(args, *TimePercentMinimal._SKIP)
    mlp.plot(args.plotfile)

    return 0
Example #5
0
  def run_command(args, plt):
    # read in all stats
    stats = []
    for stat in args.stats:
      gs = handycsv.GridStats.read(stat)
      stats.append(gs)

    # create LoadHops stats object
    lhstats = ssplot.LoadHopsStats(
      args.start, args.stop, args.step, stats)

    # determine the fields and data labels to plot
    fields = ['PerMinimal', 'PerNonMinimal']
    labels = ['Minimal %', 'Non-Minimal %']

    # gather data
    xdata = lhstats.data['Load']
    ydatas = []
    for field in fields:
      ydatas.append(lhstats.data[field])

    # create x and y axis labels
    xlabel = 'Load ({0})'.format(args.load_units)
    ylabel = 'Packets (%)'

    # plot
    mlp = ssplot.MultilinePlot(plt, xdata, ydatas)
    mlp.set_xlabel(xlabel)
    mlp.set_ylabel(ylabel)
    mlp.set_data_labels(labels)
    mlp.apply_args(args, *LoadPercentMinimal._SKIP)
    mlp.plot(args.plotfile)

    return 0
Example #6
0
    def run_command(args, plt):
        # check inputs
        assert args.start <= args.stop, 'start must be <= stop'
        assert args.step > 0, 'step must be > 0.0'
        gridsPerSet = len(numpy.arange(args.start, args.stop, args.step))
        if len(args.stats) % gridsPerSet != 0:
            print(('The number of stats file for data set is {0},\n'
                   'yet you specified {1} stats files. What gives?').format(
                       gridsPerSet, len(args.stats)))
            return -1
        dataSets = len(args.stats) // gridsPerSet

        # read in all stats
        stats = []
        for stat in args.stats:
            gs = handycsv.GridStats.read(stat)
            stats.append(gs)

        # create LoadLatency stats objects
        llstats = []
        for idx in range(dataSets):
            # create the LoadLatencyStats object
            llstat = ssplot.LoadLatencyStats(
                args.start,
                args.stop,
                args.step,
                stats[idx * gridsPerSet:(idx + 1) * gridsPerSet],
                row=args.row)

            # save the object
            llstats.append(llstat)

        # make sure the loads are all the same, gather data
        xdata = llstats[0].data['Load']
        ydatas = []
        assert args.field in ssplot.LoadLatencyStats.FIELDS
        for stat in llstats:
            assert len(xdata) == len(set(xdata).intersection(stat.data['Load'])), \
              '{0} != {1}'.format(mload, stat.data['Load'])
            ydatas.append(stat.data[args.field])

        # create x and y labels
        xlabel = 'Load ({0})'.format(args.load_units)
        ylabel = '{0} Latency'.format(args.field)
        if args.latency_units:
            ylabel += ' ({0})'.format(args.latency_units)

        # plot
        mlp = ssplot.MultilinePlot(plt, xdata, ydatas)
        mlp.set_xlabel(xlabel)
        mlp.set_ylabel(ylabel)
        mlp.apply_args(args, *LoadLatencyCompare._SKIP)
        mlp.plot(args.plotfile)

        return 0
Example #7
0
  def run_command(args, plt):
    # read in all rate stats
    rate_stats = []
    for stat in args.rate_stats:
      gs = gridstats.GridStats()
      gs.read(stat)
      rate_stats.append(gs)

    # create LoadRate stats object
    lrstats = ssplot.LoadRateStats(
      args.start, args.stop, args.step, rate_stats)

    # read in all hops stats
    hops_stats = []
    for stat in args.hops_stats:
      gs = gridstats.GridStats()
      gs.read(stat)
      hops_stats.append(gs)

    # create LoadHops stats object
    lhstats = ssplot.LoadHopsStats(
      args.start, args.stop, args.step, hops_stats)

    # determine the fields and data labels to plot
    fields = ['Mean', 'Minimal', 'NonMinimal']
    labels = ['Mean', 'Minimal', 'Non-Minimal']

    # gather data
    xdata = lhstats.data['Load']
    mean_rate = lrstats.data['Mean']
    min_percent = lhstats.data['PerMinimal']
    nmin_percent = lhstats.data['PerNonMinimal']
    ydatas = []
    ydatas.append(mean_rate)
    ydatas.append(numpy.multiply(mean_rate, min_percent))
    ydatas.append(numpy.multiply(mean_rate, nmin_percent))

    # create x and y axis labels
    xlabel = 'Injected Rate (%)'
    ylabel = 'Delivered Rate (%)'

    # plot
    mlp = ssplot.MultilinePlot(plt, xdata, ydatas)
    mlp.set_xlabel(xlabel)
    mlp.set_ylabel(ylabel)
    mlp.set_data_labels(labels)
    mlp.apply_args(args, *LoadRatePercent._SKIP)
    mlp.plot(args.plotfile)

    return 0
Example #8
0
    def run_command(args, plt):
        # read in all stats
        stats = []
        for stat in args.stats:
            gs = gridstats.GridStats()
            gs.read(stat)
            stats.append(gs)

        # create LoadLatency stats object
        llstats = ssplot.LoadLatencyStats(args.start,
                                          args.stop,
                                          args.step,
                                          stats,
                                          row=args.row)

        # determine the fields to plot
        fields = ssplot.LoadLatencyStats.FIELDS
        if not args.minimum:
            fields.remove('Minimum')
        fields = list(reversed(fields))

        # gather data
        xdata = llstats.data['Load']
        ydatas = []
        for field in fields:
            ydatas.append(llstats.data[field])

        # create x and y axis labels
        xlabel = 'Load (%)'
        ylabel = 'Latency'
        if args.units:
            ylabel += ' ({0})'.format(args.units)

        # plot
        mlp = ssplot.MultilinePlot(plt, xdata, ydatas)
        mlp.set_xlabel(xlabel)
        mlp.set_ylabel(ylabel)
        mlp.set_data_labels(fields)
        mlp.apply_args(args, *LoadLatency._SKIP)
        mlp.plot(args.plotfile)

        return 0
Example #9
0
    def run_command(args, plt):
        # read in all stats
        stats = []
        for stat in args.stats:
            gs = handycsv.GridStats.read(stat)
            stats.append(gs)

        # create LoadHops stats object
        lhstats = ssplot.LoadHopsStats(args.start, args.stop, args.step, stats)

        # determine the fields and data labels to plot
        fields = ['AveMinHops', 'AveHops', 'AveNonMinHops']
        labels = ['Minimal Hops', 'Total Hops', 'Non-Minimal Hops']
        if not args.non_minimal:
            fields = fields[:-1]
            labels = labels[:-1]

        # gather data
        xdata = lhstats.data['Load']
        ydatas = []
        for field in fields:
            ydatas.append(lhstats.data[field])

        # create x and y axis labels
        xlabel = 'Load ({0})'.format(args.load_units)
        ylabel = 'Average Hops'

        # plot
        mlp = ssplot.MultilinePlot(plt, xdata, ydatas)
        mlp.set_xlabel(xlabel)
        mlp.set_ylabel(ylabel)
        mlp.set_data_labels(labels)
        mlp.apply_args(args, *LoadAverageHops._SKIP)
        mlp.plot(args.plotfile)

        return 0