next up previous
Next: Communication Routines Up: PMDB User's Manual Previous: Miscellaneous Operators

Partition Quality Analysis Routines

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 NameTypeDescription
PMDB_MIN_LOADlong * Returns the minimum load on any processor
PMDB_MAX_LOADlong * Returns the maximum load on any processor
PMDB_AVG_LOADlong * Returns the average load of all processors
PMDB_LOCAL_LOADlong * Returns the load on the local processor for each caller
PMDB_TOTAL_LOADlong * Returns the global load on all processors
PMDB_MIN_REGIONSlong * Returns the minimum number of regions on any processor
PMDB_MAX_REGIONSlong * Returns the maximum number of regions on any processor
PMDB_AVG_REGIONSlong * Returns the average number of regions of all processors
PMDB_LOCAL_REGIONSlong * Returns the number of regions on the local processor for each caller
PMDB_TOTAL_REGIONSlong * Returns the global number of regions on all processors
PMDB_MAX_LOCAL_SIdouble * Returns the maximum local surface index
PMDB_AVG_LOCAL_SIdouble * Returns the average local surface index
PMDB_LOCAL_SIdouble * Returns the local surface index
PMDB_GLOBAL_SIdouble * returns the global surface index
PMDB_AVG_FACE_DISCONNdouble * Returns the average number of face-connected components per processor
PMDB_AVG_EDGE_DISCONNdouble * Returns the average number of edge-connected components per processor
PMDB_AVG_VERTEX_DISCONNdouble * Returns the average number of vertex-connected components per processor
PMDB_MAX_FACE_DISCONNint * Returns the maximum number of face-connected components on any processor
PMDB_MAX_EDGE_DISCONNint * Returns the maximum number of edge-connected components on any processor
PMDB_MAX_VERTEX_DISCONNint * Returns the maximum number of vertex-connected components on any processor
PMDB_FACE_DISCONNint * Returns the number of face-connected components on the local processor
PMDB_EDGE_DISCONNint * Returns the number of edge-connected components on the local processor
PMDB_VERTEX_DISCONNint * Returns the number of vertex-connected components on the local processor
PMDB_MAX_ADJACENCYdouble * Returns the maximum percentage of processors adjacent to any processor
PMDB_AVG_ADJACENCYdouble * Returns the average percentage of processors adjacent to any processor
PMDB_LOCAL_ADJACENCYdouble * Returns the percentage of processors adjacent to the local processor
PMDB_COMM_MATRIXchar ** 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_MATRIXlong ** 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 NameTypeDescription
PMDB_METRIC_HEADERchar * Caller-defined literal string to be output to the file as a header
PMDB_MIN_LOADlong Outputs the minimum load on any processor
PMDB_MAX_LOADlong Outputs the maximum load on any processor
PMDB_AVG_LOADlong Outputs the average load of all processors
PMDB_LOCAL_LOADlong Outputs the load on the local processor for each caller
PMDB_TOTAL_LOADlong Outputs the global load on all processors
PMDB_MIN_REGIONSlong Outputs the minimum number of regions on any processor
PMDB_MAX_REGIONSlong Outputs the maximum number of regions on any processor
PMDB_AVG_REGIONSlong Outputs the average number of regions of all processors
PMDB_LOCAL_REGIONSlong Outputs the number of regions on the local processor for each caller
PMDB_TOTAL_REGIONSlong Outputs the global number of regions on all processors
PMDB_MAX_LOCAL_SIdouble Outputs the maximum local surface index
PMDB_AVG_LOCAL_SIdouble Outputs the average local surface index
PMDB_LOCAL_SIdouble Outputs the local surface index
PMDB_GLOBAL_SIdouble returns the global surface index
PMDB_AVG_FACE_DISCONNdouble Outputs the average number of face-connected components per processor
PMDB_AVG_EDGE_DISCONNdouble Outputs the average number of edge-connected components per processor
PMDB_AVG_VERTEX_DISCONNdouble Outputs the average number of vertex-connected components per processor
PMDB_MAX_FACE_DISCONNint Outputs the maximum number of face-connected components on any processor
PMDB_MAX_EDGE_DISCONNint Outputs the maximum number of edge-connected components on any processor
PMDB_MAX_VERTEX_DISCONNint Outputs the maximum number of vertex-connected components on any processor
PMDB_FACE_DISCONNint Outputs the number of face-connected components on the local processor
PMDB_EDGE_DISCONNint Outputs the number of edge-connected components on the local processor
PMDB_VERTEX_DISCONNint Outputs the number of vertex-connected components on the local processor
PMDB_MAX_ADJACENCYdouble Outputs the maximum percentage of processors adjacent to any processor
PMDB_AVG_ADJACENCYdouble Outputs the average percentage of processors adjacent to any processor
PMDB_LOCAL_ADJACENCYdouble Outputs the percentage of processors adjacent to the local processor
PMDB_COMM_MATRIXchar * 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_MATRIXlong * 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:

Note: if a particular piece of data is not passed in to the function, it is simply not printed.


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.



Jim Teresco
Fri Oct 11 16:18:11 EDT 1996