The recommended method to obtain partition quality statistics is through the pmdb_metrics routine. This is a variable-length argument list function.
void pmdb_metrics( pMeshPB pmeshpb, /* IN */ int first_arg, /* IN */ ...)The arguments are specified in pairs. The first is the partition quality statistic to be computed and the second is the address of the appropriate storage in which to store the result. The list should be terminated with a NULL argument.
The following is a list of values which can be computed and the type of the argument which should be passed in the second argument in the type-address pair.
Argument Name | Type | Description |
PMDB_MIN_LOAD | long * |
Returns the minimum load on any processor |
PMDB_MAX_LOAD | long * |
Returns the maximum load on any processor |
PMDB_AVG_LOAD | long * |
Returns the average load of all processors |
PMDB_LOCAL_LOAD | long * |
Returns the load on the local processor for each caller |
PMDB_TOTAL_LOAD | long * |
Returns the global load on all processors |
PMDB_MIN_REGIONS | long * |
Returns the minimum number of regions on any processor |
PMDB_MAX_REGIONS | long * |
Returns the maximum number of regions on any processor |
PMDB_AVG_REGIONS | long * |
Returns the average number of regions of all processors |
PMDB_LOCAL_REGIONS | long * |
Returns the number of regions on the local processor for each caller |
PMDB_TOTAL_REGIONS | long * |
Returns the global number of regions on all processors |
PMDB_MAX_LOCAL_SI | double * |
Returns the maximum local surface index |
PMDB_AVG_LOCAL_SI | double * |
Returns the average local surface index |
PMDB_LOCAL_SI | double * |
Returns the local surface index |
PMDB_GLOBAL_SI | double * |
returns the global surface index |
PMDB_AVG_FACE_DISCONN | double * |
Returns the average number of face-connected components per processor |
PMDB_AVG_EDGE_DISCONN | double * |
Returns the average number of edge-connected components per processor |
PMDB_AVG_VERTEX_DISCONN | double * |
Returns the average number of vertex-connected components per processor |
PMDB_MAX_FACE_DISCONN | int * |
Returns the maximum number of face-connected components on any processor |
PMDB_MAX_EDGE_DISCONN | int * |
Returns the maximum number of edge-connected components on any processor |
PMDB_MAX_VERTEX_DISCONN | int * |
Returns the maximum number of vertex-connected components on any processor |
PMDB_FACE_DISCONN | int * |
Returns the number of face-connected components on the local processor |
PMDB_EDGE_DISCONN | int * |
Returns the number of edge-connected components on the local processor |
PMDB_VERTEX_DISCONN | int * |
Returns the number of vertex-connected components on the local processor |
PMDB_MAX_ADJACENCY | double * |
Returns the maximum percentage of processors adjacent to any processor |
PMDB_AVG_ADJACENCY | double * |
Returns the average percentage of processors adjacent to any processor |
PMDB_LOCAL_ADJACENCY | double * |
Returns the percentage of processors adjacent to the local processor |
PMDB_COMM_MATRIX | char ** |
Returns the communication matrix - pass in an array of
num_procs*num_procs characters. Entry [i][j] will contain 'X' if the
processors i and j are adjacent. |
PMDB_INTERFACE_MATRIX | long ** |
Returns a matrix of the interface sizes (number of shared faces)
between each pair of processors. Pass in an array of
num_procs*num_procs long's. Entry [i][j] will contain the
number of shared faces between processor i and processor
j. |
A standard format for the output of partition quality statistics is provided by the pmdb_output_metric_summary routine. It takes a file name prefix and a variable-length argument list.
void pmdb_output_metric_summary( char *filePrefix, /* IN */ int first_arg, /* IN */ ...)Output is placed in a file with the name "filePrefix.met_summary". It assumes any directories which are part of the file name prefix already exist. The other arguments are specified in pairs. The first is the partition quality statistic to be output and the second is the appropriate value previously obtained from pmdb_metrics. The list should be terminated with a NULL argument.
The following is a list of values which can be output and the type of the argument which should be passed in the second argument in the type-address pair.
Argument Name | Type | Description |
PMDB_METRIC_HEADER | char * |
Caller-defined literal string to be output to the file as a header |
PMDB_MIN_LOAD | long |
Outputs the minimum load on any processor |
PMDB_MAX_LOAD | long |
Outputs the maximum load on any processor |
PMDB_AVG_LOAD | long |
Outputs the average load of all processors |
PMDB_LOCAL_LOAD | long |
Outputs the load on the local processor for each caller |
PMDB_TOTAL_LOAD | long |
Outputs the global load on all processors |
PMDB_MIN_REGIONS | long |
Outputs the minimum number of regions on any processor |
PMDB_MAX_REGIONS | long |
Outputs the maximum number of regions on any processor |
PMDB_AVG_REGIONS | long |
Outputs the average number of regions of all processors |
PMDB_LOCAL_REGIONS | long |
Outputs the number of regions on the local processor for each caller |
PMDB_TOTAL_REGIONS | long |
Outputs the global number of regions on all processors |
PMDB_MAX_LOCAL_SI | double |
Outputs the maximum local surface index |
PMDB_AVG_LOCAL_SI | double |
Outputs the average local surface index |
PMDB_LOCAL_SI | double |
Outputs the local surface index |
PMDB_GLOBAL_SI | double |
returns the global surface index |
PMDB_AVG_FACE_DISCONN | double |
Outputs the average number of face-connected components per processor |
PMDB_AVG_EDGE_DISCONN | double |
Outputs the average number of edge-connected components per processor |
PMDB_AVG_VERTEX_DISCONN | double |
Outputs the average number of vertex-connected components per processor |
PMDB_MAX_FACE_DISCONN | int |
Outputs the maximum number of face-connected components on any processor |
PMDB_MAX_EDGE_DISCONN | int |
Outputs the maximum number of edge-connected components on any processor |
PMDB_MAX_VERTEX_DISCONN | int |
Outputs the maximum number of vertex-connected components on any processor |
PMDB_FACE_DISCONN | int |
Outputs the number of face-connected components on the local processor |
PMDB_EDGE_DISCONN | int |
Outputs the number of edge-connected components on the local processor |
PMDB_VERTEX_DISCONN | int |
Outputs the number of vertex-connected components on the local processor |
PMDB_MAX_ADJACENCY | double |
Outputs the maximum percentage of processors adjacent to any processor |
PMDB_AVG_ADJACENCY | double |
Outputs the average percentage of processors adjacent to any processor |
PMDB_LOCAL_ADJACENCY | double |
Outputs the percentage of processors adjacent to the local processor |
PMDB_COMM_MATRIX | char * |
Outputs the communication matrix - pass in an array of
num_procs*num_procs characters. Entry [i][j] should contain 'X' if the
processors i and j are adjacent. |
PMDB_INTERFACE_MATRIX | long * |
Outputs a matrix of the interface sizes (number of shared faces)
between each pair of processors. Pass in an array of
num_procs*num_procs long's. Entry [i][j] should contain the
number of shared faces between processor i and processor
j. |
The format of the file that is output is as follows:
PMDB_METRIC_HEADER
)
is output
void pmdb_part_info( pMeshPB pmeshpb) /* IN */Available beginning in version 4.2. Prints statistical information about entities on interprocessor, shared entity ownership, and other information.