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: - required (in) –
networkProfile.Profile
describing the required profile - provided (in) –
networkProfile.Profile
describing the provided profile - config (in) –
networkConfig.Config
describing the configuration of the network - options (in) –
Options
describing the program options for drawing and analysis
Returns a list of analysis results consisting of:
[ output, remaining, max delay, max buffer ]
- The output profile as a
networkProfile.Profile
generated by calling required.networkProfile.Profile.Convolve()
( provided ) - The remaining capacity profile as a
networkProfile.Profile
which is determined as - The delay structure generated by calling required.
networkProfile.Profile.CalcDelay()
( output ) - The buffer structure generated by calling required.
networkProfile.Profile.CalcBuffer()
( output )
-
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
- Parses the command line options according to the
-
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)¶
-