Tuning and Analysis Utilities




The mastermind component is responsible for collecting, storing and reporting the performance data. The Mastermind component implements the MonitorPort, used by proxies to monitor per invocation performance data. For each method of a given port that is being monitored, a record is created. This record stores performance data for the given method on a per invocation basis and is updated at each successive invocation of the method. For each invocation, performance data for the computation phase and communication phase, as well as the input parameters, are recorded. Upon program termination, each record is dumped to disk.

Under a typical setup each proxy is connected to the Mastermind component, which provides functionality to turn measurements on and off. The Mastermind component, in turn, is connected to TAU, which provides the functionality to create and manage timers, as well as access hardware counters.

Following is an example component assembly with the MasterMind component and associated proxies:

MasterMind component and proxies diagram


The Optimizer component selects the most efficient implementation for each component from the set of possible component implementation by analyzing the overall performance of every different configuration of components. The Optimizer is only concerned with the components that significantly influences the overall running time, and thus first remove insignificantly component from consideration according to these two rules:

Let a node be a single component which calls some child components.