Class: Clusterer

Clusterer

A clusterer separates the executions in the input log into different groups based on a chosen metric. It then displays the results in the cluster tab in the left sidebar. The clustering mechanism is performed after the visualization has been drawn. The headingsToLabelsMap uses heading names as a key to get an array of corresponding subheadings and execution labels. The first item in the array is always the subheadings and the second item is always the execution labels.

Constructor

new Clusterer(metric)

Constructs a clusterer
Parameters:
Name Type Description
metric String The chosen metric for clustering executions
Source:
To Do:
  • cache cluster results

Methods

clearResults()

Clears the results table as well as any existing headings, subheadings and executions labels
Source:

cluster()

This function delegates clustering to the appropriate helper function based on the metric that was set when the Clusterer was constructed
Source:

clusterByExecComparison()

This function clusters executions into different groups by comparing them to a user-specified base execution. The two main headings are "Same hosts" and "Different hosts". The subheadings are "Same Events" and "Different Events".
Source:

clusterByNumProcesses()

This function starts by finding the minimum and maximum number of processes across all the views. If these values are the same, all executions are listed under one cluster heading. Otherwise, the midpoint between max and min is determined and executions with <= midpoint processes are grouped under one heading and ones with > midpoint processes are grouped into another
Source:

condenseExecLabels(heading)

Condenses the list of execution labels beloning to the given heading or subheading
Parameters:
Name Type Description
heading jQuery.selection A jQuery selection of the heading or subheading whose execution labels need to be condensed
Source:

drawClusterResults()

Draws the cluster headings and subheadings and passes the appropriate execution labels to drawExecLabels(). Formats and binds events to results after all execution labels for all headings and subheadings have been drawn.
Source:

drawExecLabels(currLabels, currHeading)

Draws the given list of execution labels and calls condenseExecLabels() when appropriate
Parameters:
Name Type Description
currLabels Array.<String> The execution labels to be drawn
currHeading jQuery.selection A jQuery selection of the heading or subheading that currLabels is drawn under
Source:

setView(position, anchorHref)

Sets the view in the given position to the execution with the label specified by anchorHref
Parameters:
Name Type Description
position String Either "L" or "R" to indicate the left or right view
anchorHref String The label of the execution to be set
Source:

sortLabels(labels)

Sorts an array of execution labels based on the chosen metric for clustering: When clustering by the number of processes, the labels are ordered by increasing number of processes.
Parameters:
Name Type Description
labels Array.<String> The execution labels to be sorted
Source: