Abstract:
An application performance monitoring system monitors a system having multiple components, automatically calculates a performance metric for the system, and determines a relationship between components of the software system that effect the performance metric. The system is configured to automatically generate a model of behavior of the performance metric using a genetic search process that randomly creates a set of functions and evolves those functions over multiple generations with evolution being skewed by a rule based on the determined relationship between components.
Abstract:
Method and multi-core processing system for tracing program execution state are provided, and the method includes following steps. A processor is provided, wherein the processor includes a first core and a second core. An operating system is executed by the first core, and a program is executed by the second core. During a period where the program is executed by the second core, an execution state of the second core is traced by the first core using a tracing module, so as to obtain raw execution data generated by the program executed by the second core. The raw execution data associated with the program is stored.
Abstract:
Illustrative embodiments of methods, machine-readable media, and parallel computing systems that automatically tune a communication protocol are disclosed. In some embodiments, a method may include selecting a collective operation to be implemented by a Message Passing Interface (MPI) of a parallel computing system, wherein the MPI is configured to implement the collective operation using at least one of a plurality of algorithms; modeling each of the plurality of algorithms as a corresponding plurality of point-to-point operations; determining a transfer rate of each of the plurality of algorithms using its corresponding plurality of point-to-point operations; selecting one or more algorithms from among the plurality of algorithms, the one or more selected algorithms having higher transfer rates than one or more non-selected algorithms; and testing performance of the one or more selected algorithms with a plurality of configuration parameters to determine at least one optimized algorithm for implementing the collective operation.
Abstract:
A debugging system and method, referred to as a kernel functionality checker, is described for enabling debugging of software written for device-specific APIs (application program interfaces) without requiring support or changes in the software driver or hardware. Specific example embodiments are described for OpenCL, but the disclosed methods may also be used to enable debugging capabilities for other device-specific APIs such as DirectX® and OpenGL®.
Abstract:
One or more problems may be detected in an executing application by retrieving runtime execution information from the application executing on one or more computers. The runtime information is transformed into a temporal sequence of events. A knowledgebase is searched for a dialog that has nodes in an order that match the temporal sequence of events according to a threshold degree. Responsive to finding the dialog in the knowledgebase, the dialog is launched on a user interface to interact with a user and guide the user through a problem identification and solution. Responsive to not finding the dialog, additional instrumenter is enabled in the application.
Abstract:
Performance thresholds are defined for operators in a flow graph for a streaming application. A streams manager deploys the flow graph to one or more virtual machines (VMs). The performance of each portion of the flow graph on each VM is monitored. A VM is selected. When the performance of the portion of the flow graph in the selected VM does not satisfy the defined performance threshold(s), a determination is made regarding whether the portion of the flow graph is underperforming or overperforming. When the portion of the flow graph is underperforming, the portion of the flow graph is split into multiple portions that are implemented on multiple VMs. When the portion of the flow graph is overperforming, a determination is made of whether a neighbor VM is also overperforming. When a neighbor VM is also overperforming, the two VMs may be coalesced into a single VM.
Abstract:
A system is described for identifying key lock contention issues in computing devices. A computing device is executed and lock contention information relating to operations during execution of the computing device is recorded. The data is parsed and analyzed to determine blocking relationships between operations due to lock contention. Algorithms are implemented to analyze dependencies between operations based on the data and to identify key areas of optimization for performance improvement. Algorithms can be based on the Hyperlink-Induced Topic Search algorithm or the PageRank algorithm.
Abstract:
A system is described for identifying key lock contention issues in computing devices. A computing device is executed and lock contention information relating to operations during execution of the computing device is recorded. The data is parsed and analyzed to determine blocking relationships between operations due to lock contention. Algorithms are implemented to analyze dependencies between operations based on the data and to identify key areas of optimization for performance improvement. Algorithms can be based on the Hyperlink-Induced Topic Search algorithm or the PageRank algorithm.
Abstract:
Techniques are described for managing log data generated by software applications. The techniques can be implemented in a cloud-based infrastructure capable of collecting and analyzing log data generated by software applications through logging and tracing. Logging and tracing are techniques for monitoring the execution of the software applications. The techniques include a processing step where log data is screened before it is saved within log storage and an analyzing step where saved log files are retrieved or analyzed.
Abstract:
Certain example embodiments relate to application intelligence gathering systems and/or methods, e.g., in connection with Event Driven Applications and/or the like. More particularly, certain example embodiments relate to the effective recording of application evolution and usage information for usage learning and/or event auditing purposes. With respect to usage learning, certain example embodiments may help to capture data on the usage patterns and/or apply learning algorithms that work on the captured data to provide required intelligence to the application. With respect to event auditing, certain example embodiments may help to identify the “who”, “what”, “when”, “where”, “how”, and/or “why” of particular operations. Application intelligence optionally may be used in determining application “hotspots” or commonly used features that could help in areas such as application maintenance, performance tuning, and/or the like.