Analysis

This program is designed to analyze network performance of distributed applications in a networked system. Its analysis techniques are based on Network Calculus and provide deterministic analysis of networks and network applications. By analyzing the Quality of Service (QoS) that the system network provides to the applications and users, we can determine the buffer space required for the applications to communicate losslessly as well as the buffering delay experienced by the network traffic.

This program in particular implements these calculations and is able to load, parse, and analyze network profiles and configuration files describing the system, the network flows, and the time-dependent traffic generation or service profiles associated with the applications or the system, respectively.

analyze_profile(required, provided, config, options)
  • Calculates the hyperperiod of the profiles
  • Repeats the profiles for the specified number of hyperperiods in options
  • Analyzes the requested profiles
  • If more than one hyper-period has been specified it determines system stability
  • Optionally plots the bandwidths and data for the profiles
Parameters:

Returns a list of analysis results consisting of:

[ output, remaining, max delay, max buffer ]
parse_profiles(config, options)
analyze_config(config, options)

This function analyzes the system configuration in flow priority order, taking into account system-level concepts such as multicast capabilities. It performs the following steps:

  • sort the sender profiles by priority
  • retrieve from the system config all receiver profiles associated with this flow type
  • for each receiver:
    • get the route the flow will take from the sender to the receiver
    • for each node along the route:
      • analyze the flow’s profile with the node’s provided profile
      • set the node’s provided profile to the remaining profile
      • set the flow’s required profile to the received profile
    • analyze the flow’s profile with the receiver’s profile
main(argv)

Performs the main analysis of the profiles using the following steps:

  • Parses the command line options according to the Options specification.
  • Loads the specified network configuration
  • Parses the files in to separate profiles
  • Analyzes the system configuration
class Options
--help (to show this help and exit)
--nc_mode (to run network calculus calcs)
--no_plot (to not output any plots)
--no_profile_name
 (to not plot ‘profile_name’, e.g. ‘required’)
--print (to print the profiles as they are analyzed)
--required <fileName containing the required profile>
--provided <fileName containing the provided profile>
--receiver <fileName containing the receiver profile>
--profile_folder
 <path containing profiles to be loaded>
--network_config
 <file containing network configuration>
--num_periods <number of periods to analyze>
--nc_step_size <step size for time-windows in NC mode>
plot_profiles = None

plot the profiles?

plot_dict = None

dictionary with plot options generated

print_profiles = None

print the profiles?

num_periods = None

number of periods to analyze

plot_line_width = None

line width for plots

font_size = None

font size for plots

nc_mode = None

analyze using network calculus techniques?

nc_step_size = None

step size for network calculus analysis

required_fileName = None

what file to load as the required profile

provided_fileName = None

what file to load as the provided profile

receiver_fileName = None

what file to load as the receiver profile

profile_folderName = None

path to a folder which contains all the profiles to be analyzed

network_configName = None

file which contains the topology and configuration of the network

parse_args(args)
print_usage(name)