Node:Collected Statistics, Next: Building, Prev: Statistics Collection, Up: Top, Contents, Top

Collected Statistics

Some additional statistics are automatically collected by Proteus. Not exactly a statistic, Proteus generates strings describing its configuration; these can be used by user code to label output. Histometrics are collected for network and memory performance parameters. (See section Histogram Metrics.) The collection of some of these can be switched on and off. Several new graphs showing network and memory-system performance are displayed by stats.


Node:Configuration Strings, Next: Pre-Defined Histometrics, Prev: Collected Statistics, Up: Collected Statistics, Contents, Top

Automatically Generated Configuration Strings and User Comment Strings

Proteus automatically generates several strings describing the system configuration, including the type of network and memory system. If a simulation title is not provided, the strings are used to construct one. Some of the strings are also printed out at the top of a run. The strings can be used in user code, to label output, for example.

Each string comes in two sizes: a normal size, usually no more than 80 characters; and a short size, usually less than 20 characters.

Proteus can automatically display user comment strings at the beginning of a run. The strings are specified by RTI variables `sim_comment_1', `sim_comment_2', and `sim_comment_3'.

variable: char* mem_config_str
variable: char* mem_config_str_short
Describes the amount of memory and size of the cache directories. Short string format is (2^XB,DY), where X is the number of bits of address space per module and Y is the number of entries in the cache directory, if any.

variable: char* cache_config_str
variable: char* cache_config_str_short
Describes the type of cache. Short string format is (Xw,2^Y,2^ZL,W,LV), where X is the cache associativity (number of lines per set), 2^Y is the number of sets, 2^Z is the number of bytes per line, W is the type of replacement policy used: `pr' for part-random, `fr' for full-random, or `DR' for deterministic replacement, and V is the latency of cache operations in cycles.

variable: char* nw_config_str
variable: char* nw_config_str_short
Describes the type of network. Short string format for KNC and multistage networks is (Dd,Rr,XY,(NL,II)W,Tcy), where D is the number of dimensions, R is the radix, X is `B' for bidirectional networks and `D' for unidirectional networks, Y is `D' for direct networks and `I' for indirect networks, N is the link width in bytes, I is the network interface width in bytes, and T is the memory latency in cycles. If D is preceded by `~' the network is modeled; if it is preceded by `=' then it is simulated exactly.

RTI Variable: char* sim_comment_1
RTI Variable: char* sim_comment_2
RTI Variable: char* sim_comment_3
Pointers to comment strings. If set, the strings are printed at the beginning of a run.


Node:Pre-Defined Histometrics, Next: Utilization Statistics, Prev: Configuration Strings, Up: Collected Statistics, Contents, Top

Pre-Defined Histometrics

Histometrics are automatically collected for the simulated-system quantities listed below (See section Histogram Metrics.) They can be viewed using the Mstats Mathematica package. (See section Mstats: A Mathematica Package for Viewing Traces.)

Time, as used below, refers to simulated time measured in cycles.

The first four quantities below are collectively called the utilization statistics. If perfectly defined, the sum of each quantity for each processor would equal the run time. (See section Utilization Graphs.)

The quantities below describe the delays a message encounters from source to destination. These statistics are only collected if `JOURNEY_STATS' is defined (See section Timing Messages) and only when utilization statistics are being collected (See section Utilization Statistics).


Node:Utilization Statistics, Next: New Stats, Prev: Pre-Defined Histometrics, Up: Collected Statistics, Contents, Top

Utilization Statistics

Utilization statistics describe describe the amount of time a processor spends running user code, performing shared-memory access, running interrupt handlers, and idle. If perfectly defined, these would add up to the total execution time per processor. (See section Pre-Defined Histometrics.)

They also include shared memory access latency and several components of message latency.

Collection of utilization statistics can be turned on and off using functions `UtilSetOn()' and `UtilSetOff()'. These functions can also call a user function; the user function might switch user statistics collection routines on and off. Utilization statistics collection can automatically be turned on using RTI variable `utilSwitch'.

Function: void UtilSetOn( void );
Calls function `*user_statistics_on_hook_' if non-null, turns on collection of utilization statistics, and writes an appropriate state event. (The state event is associated with the highest-numbered processor.) (See section Pre-Defined Histometrics.)

Function: void UtilSetOff( void );
Calls function `*user_statistics_off_hook_' if non-null, turns off collection of utilization statistics, and writes an appropriate state event. (The state event is associated with the highest-numbered processor.) (See section Pre-Defined Histometrics.)

Variable: void (*user_statistics_on_hook_)();
Points to a function to be called when utilization statistics are turned on, or `NULL' if there is no user function. It is the user's responsibility to chain hook functions.

Variable: void (*user_statistics_off_hook_)();
Points to a function to be called when utilization statistics are turned off, or `NULL' if there is no user function. It is the user's responsibility to chain hook functions.

RTI Variable: int utilSwitch
Utilization statistics switch. When 0 utilization statistics collection must be activated by the user (by calling `UtilSetOn'). When 1, collection starts just before `usermain' is called. When 2, collection starts at the beginning of the simulation.


Node:New Stats, Prev: Utilization Statistics, Up: Collected Statistics, Contents, Top

New Stats Graphs

The following graphs are provided by Proteus L in addition to those provided by Proteus 3. The graphs are all available in cached, exact network configurations; some graphs are unavailable in other configurations. The collection of data for these graphs is controlled by macros defined in `conf.param' and can be set using the config program. Data collection might be switched off to save disk space (by default the data is written to `events.sim') and improve speed. The stats program will display an empty graph if the needed data was not collected.