<<

NAME

Inca::Reporter::Performance - Convenience module for performance-related reporters

SYNOPSIS

  use Inca::Reporter::Performance;
  my $performance = new Inca::Reporter::Performance(
    name => 'My performance reporter',
    version => 1,
    description => 'Measures host performance',
    url => 'http://inca.sdsc.edu',
    measurement_name => 'host performance'
  );
  ...
  my $benchmark = new Inca::Reporter::Performance::Benchmark();
  $benchmark->addParameter('num_cpus', 16 );
  $benchmark->addStatistic('bandwidth', 10, 'Mb/s');
  $performance->addBenchmark('sample', $benchmark);
  $reporter->print();

DESCRIPTION

Module for writing performance related reporters. A performance reporter has one or more benchmarks. Each benchmark has one or more statistics (i.e., results) and can further be described with one or more parameters. For example,

  <performance> 
    <ID>some_id</ID>
    <benchmark>
      <ID>sample</ID>
      <parameters>
        <ID>parameters</ID>
        <parameter>
          <ID>num_cpus</ID>
          <value>16</value>
        </parameter>
      </parameters>
      <statistics>
        <ID>statistics</ID>
        <statistic>
          <ID>bandwidth</ID>
          <value>10</value>
          <units>Mb/s</units>
        </statistic>
      </statistics>
    </benchmark>
  </performance>

By default, the exit status of the reporter will be set to true (i.e., success). See Inca::Reporter::Performance::Benchmark for more information.

CLASS METHODS

new

Class constructor which returns a new Inca::Reporter::Performance object. The constructor supports the following parameter in addition to those supported by Inca::Reporter.

measurement_name

the name of the performance metric measured by the reporter; default ''.

addBenchmark($name, $benchmark)

Add a benchmark to the reporter. $benchmark is an object of type Inca::Reporter::Performance::Benchmark. $name identifies the benchmark.

addNewBenchmark($name)

A convenience that combines the allocation of a benchmark and its addition to the reporter.

getMeasurementName

Returns the name of the performance metric measured by the reporter.

reportBody

Constructs and returns the body of the reporter.

setMeasurementName($name)

Sets the name of the performance metric measured by the reporter.

EXAMPLE

  my $reporter = new Inca::Reporter::Performance(
    name => 'perfeval.local.file.copy',
    description =>
      'Measures the time it takes to copy a file from one directory to another',
    version => 1.3,
    url => 'http://totally.madeup.org',
    measurement_name => 'file_transfer_time'
  );
  $reporter->addArg('file');
  $reporter->processArgv(@ARGV);
  my $file = $reporter->getValue('file');

  my $start = time();
  `cp $file /tmp`;
  my $elapsed = time() - $start;
  my $benchmark =
    new Inca::Reporter::Performance::Benchmark();
  $benchmark->addStatistic('elapsed_time', $elapsed, 'secs');
  $reporter->addBenchmark('file_transfer_time', $benchmark);
  $reporter->print();

AUTHOR

Shava Smallen <ssmallen@sdsc.edu>

SEE ALSO

Inca::Reporter::Performance::Benchmark

<<