<<

NAME

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

SYNOPSIS

  use Inca::Reporter::Performance::Network;
  my $performance = new Inca::Reporter::Performance::Network( "some_id" );
  ...
  my $benchmark = new Inca::Reporter::Performance::Benchmark("sample");
  $benchmark->addParameter( "num_cpus", 16 );
  $benchmark->addStatistic( "bandwidth", 10, units => "Mb/s" );
  $performance->addBenchmark( $benchmark );
  $reporter->print();

DESCRIPTION

Module for writing performance related network reporters. This is a subclass of Inca::Reporter::Performance which adds on convenience methods for running pairwise measurements.

CLASS METHODS

startEndpoint (exec => $executable, arguments => undef, success_mark => $mark, remote => undef, outputfile => undef)

stopEndpoint

If the endpoint process persists pass the measurement, use this function to kill the endpoint process by sending the process a sig interrupt.

startMeasurement(exec => $executable, mark => $mark, remote => undef)

Inputs:

executable

The command to execute to run the measurement to the endpoint.

Options:

mark

If the executable doesn't return an error exit code upon error use mark to look for a string printed to stdout that indicates that it was started up correctly. If that string is not found, then we assume that the executable was not started correctly.

remote

If true, then use Globus to do remote execution

outputfile

If specified and remote is true, the contents of the remote file will be copied back to the local directory. Use this option if the executable prints results to a file rather than to stdout. Can be a string or array of strings.

EXAMPLE

  my $reporter = new Inca::Reporter::Performance::Network( "file_transfer_time");
  $reporter->setUrl( "http://totally.madeup.org" );
  $reporter->setVersion( '$Revision: 1.7 $' );
  $reporter->addArgument( "file" );
  $reporter->setDescription( "Measures the time it takes to copy a file from one directory to another");
  $reporter->processArgs( @ARGV );
  my $file = $reporter->getValue( "file" );
  my $time_before = time();
  `cp $file /gpfs`;
  my $time_after = time();
  my $elapsed_time = $time_after - $time_before;
  my $benchmark = new Inca::Reporter::Performance::Network::Benchmark( "file_transfer_time");
  $benchmark->addStatistic( "elapsed_time", $elapsed_time, units => "secs" );
  $reporter->addBenchmark( $benchmark );
  $reporter->print();

AUTHOR

Shava Smallen <ssmallen@sdsc.edu>

SEE ALSO

Inca::Reporter::Performance::Network::Benchmark, Inca::Reporter::Logging

<<