Patent application number | Description | Published |
20090319996 | ANALYSIS OF THREAD SYNCHRONIZATION EVENTS - Thread blocking synchronization event analysis software uses kernel context switch data and thread unblocking data to form a visualization of thread synchronization behavior. The visualization provides interactive access to source code responsible for thread blocking, identifies blocking threads and blocked threads, summarizes execution delays due to synchronization and lists corresponding APIs and objects, correlates thread synchronization events with application program phases, and otherwise provides information associated with thread synchronization. The visualization may operate within an integrated development environment. | 12-24-2009 |
20100223600 | THREAD EXECUTION ANALYZER - A thread execution analyzer analyzes blocking events of threads in a program using execution data and callstacks collected at the blocking events. The thread execution analyzer attempts to identify an application programming interface (API) responsible for each blocking event and provides blocking analysis information to a user. The blocking analysis information may be used by a developer of the program to understand the causes of blocking events that occur for threads of the program. | 09-02-2010 |
20100251160 | MEASUREMENT AND REPORTING OF PERFORMANCE EVENT RATES - Methods and systems are disclosed for measuring performance event rates at a computer and reporting the performance event rates using timelines. A particular method tracks, for a time period, the occurrences of a particular event at a computer. Event rates corresponding to different time segments within the time period are calculated, and the time segments are assigned colors based on their associated event rates. The event rates are used to display a colored timeline for the time period, including displaying a colored timeline portion for each time segment in its associated color. | 09-30-2010 |
20110078661 | MARKER CORRELATION OF APPLICATION CONSTRUCTS WITH VISUALIZATIONS - The use of marker(s) in the source code of a program under evaluation. A representation of the marker(s) remains in the binary version of the program under evaluation. During execution, upon executing the marker, data is gathered regarding the timeline of the execution of the marker in the context of overall timeline of execution. A visualization of the marker is then displayed that illustrates the execution of the marker in the context of a larger timeframe of execution. Optionally, the marker may be associated with text, or other data, at least some of which being rendered with the visualization. Accordingly, an application developer, or indeed anyone evaluating the program, may place markers within source code and/or evaluate the timeline of execution of those markers. | 03-31-2011 |
20110099329 | ANALYSIS AND TIMELINE VISUALIZATION OF STORAGE CHANNELS - The visualization of a storage access on a timeline that represents various disk access events, such as a storage read event, or a storage write event. The storage access timeline may be formulated using event data gathered regarding storage access events, such as storage read requests, or storage write requests. The timeline may be displayed in conjunction with non-storage events, such as thread events, process events, processor events, or such, in order to give a visual indication of what is causing the storage access events. There may even be a control for displaying an identification of the file being accessed for one or more of the storage access events. With a better understanding of correlation between storage access events and application operation, optimization of the application itself may be achieved to more efficiently interface with the storage medium. | 04-28-2011 |
20110099539 | ANALYSIS AND TIMELINE VISUALIZATION OF THREAD ACTIVITY - Analyzing the performance of multi-threaded applications. An analysis and visualization of thread executions is performed on a graphical timeline using samples of thread execution. This allows users to understand when their application threads are executing, what they were executing, the degree of concurrency in thread execution, and the order in which work is performed in their application. The visualizations and analysis also allow users to sample thread execution contexts using a graphical user interface, as well as the generation of execution profile reports that may be filtered for a specific time range of execution and a subset of the threads running in the application. | 04-28-2011 |
20110099550 | ANALYSIS AND VISUALIZATION OF CONCURRENT THREAD EXECUTION ON PROCESSOR CORES. - An analysis and visualization is used to depict how a concurrent application executes threads on processor cores over time. With the analysis and visualization, a developer can readily identify thread migrations and thread affinity bugs that can degrade performance of the concurrent application. An example receives information regarding processes or threads running during a selected period of time. The information is processed to determine which processor cores are executing which threads over the selected period of time. The information is analyzed and executing threads for each core are depicted as channel segments over time, and can be presented in a graphical display. The visualization can help a developer identify areas of code that can be modified to avoid thread migration or to reduce thread affinity bugs to improve processor performance of concurrent applications. | 04-28-2011 |
20110099554 | ANALYSIS AND VISUALIZATION OF APPLICATION CONCURRENCY AND PROCESSOR RESOURCE UTILIZATION - An analysis and visualization depicts how an application is leveraging computer processor cores in time. The analysis and visualization enables a developer to readily identify the degree of concurrency exploited by an application at runtime. Information regarding processes or threads running on the processor cores over time is received, analyzed, and presented to indicate portions of processor cores that are used by the application, idle, or used by other processes in the system. The analysis and visualization can help a developer understand contention for processor resources, confirm the degree of concurrency, or identify serial regions of execution that might provide opportunities for exploiting parallelism. | 04-28-2011 |
20110113407 | Software routine fingerprints in performance data - Program profile data is used to prepare temporal cost-incurrence fingerprints, which show when a given method or method frame incurred specified cost(s) during a period of interest while a program was/is executing. Relationships between methods can be elicited by studying their temporal cost-incurrence fingerprints. Methods which are often good candidates for optimization can be automatically selected by identifying a small set of methods whose amount of cost lies within specified bounds relative to the most costly method, or in absolute terms, and whose respective fingerprints differ from one another. | 05-12-2011 |
20110154245 | VISUALIZATION OF STATES OF A PROCESS - A method of providing a visualization of states of a process includes identifying a set of potential states that can occur during the process and a corresponding set of colors, with each color in the set of colors corresponding to one of the potential states. A fixed ordering is established for the set of colors. A timeline graph including a plurality of colored vertical bars is displayed. Each colored vertical bar corresponds to a time interval of the process and includes at least one color selected from the set of colors based on at least one state occurring during the time interval corresponding to the vertical bar. The plurality of colored vertical bars includes a set of multiple-color vertical bars that each include a plurality of colors appearing in a vertical order based on the fixed ordering. | 06-23-2011 |
20110307905 | INDICATING PARALLEL OPERATIONS WITH USER-VISIBLE EVENTS - The present invention extends to methods, systems, and computer program products for indicating parallel operations with user-visible events. Event markers can be used to indicate an abstracted outer layer of execution as well as expose internal specifics of parallel processing systems, including systems that provide data parallelism. Event markers can be used to show a variety of execution characteristics including higher-level markers to indicate the beginning and end of an execution program (e.g., a query). Inside the execution program (query) individual fork/join operations can be indicated with sub-levels of markers to expose their operations. Additional decisions made by an execution engine, such as, for example, when elements initially yield, when queries overlap or nest, when the query is cancelled, when the query bails to sequential operation, when premature merging or re-partitioning are needed can also be exposed. | 12-15-2011 |
20110320745 | DATA-SCOPED DYNAMIC DATA RACE DETECTION - A dynamic shared-memory data race detection tool with data-scoping capabilities to reduce runtime overheads is disclosed. The tool allows users to restrict analysis of memory locations to heap and/or stack variables that are of interest to them using explicit calls to functions provided in a library that is part of the race detection tool. The application code is instrumented to insert probes at all memory instructions and linked with the data race detection library to perform data-scoped race detection. | 12-29-2011 |
20120072758 | ANALYSIS AND VISUALIZATION OF CLUSTER RESOURCE UTILIZATION - An analysis and visualization depicts how an application is leveraging processor cores of a distributed computing system, such as a computer cluster, in time. The analysis and visualization enables a developer to readily identify the degree of concurrency exploited by an application at runtime and the amount of overhead used by libraries or middleware. Information regarding processes or threads running on the nodes over time is received, analyzed, and presented to indicate portions of computer cluster that are used by the application, idle, other processes, and libraries in the system. The analysis and visualization can help a developer understand or confirm contention for or under-utilization of system resources for the application and libraries. | 03-22-2012 |
20120311136 | TIME SYNCHRONIZATION ACROSS COMPUTERS IN A DISTRIBUTED SYSTEM - Normalizing time across machines in a distributed system. A method includes obtaining one or more points defining differences in time between machines in the distributed system. Using the points, a determination of one or more time measurement drifts between machines is made. The one or more time measurement drifts indicate changing differences in time over time. One or more traces are collected. Each trace includes one or more events. Each event is correlated to a time stamp from one of the machines in the distributed system. Using the one or more determined time measurement drifts, the time stamps are normalized. | 12-06-2012 |
20130152051 | TIME-BASED NAVIGATION WITHIN RESOURCE UTILIZATION DATA - The present invention extends to methods, systems, and computer program products for time-based navigation within resource utilization data. A computer system is configured to present resource utilization data representing performance of computer resources. The resource utilization data is displayed on a diagnostic data trace during the execution of the application. The user can select a desired time range and the resource utilization data within the time range will be displayed at other traces. The diagnostic data trace is still presented so that the user can understand the relation between the selected time range and the overall time length. Further, the user can modify the selected time range by change the extents of the selected time range using resizing tool. The resource utilization data within the modified selected time range, similarly, is also displayed along with the diagnostic data trace. | 06-13-2013 |
20140068565 | ANALYSIS AND TIMELINE VISUALIZATION OF THREAD ACTIVITY - Analyzing the performance of multi-threaded applications. An analysis and visualization of thread executions is performed on a graphical timeline using samples of thread execution. This allows users to understand when their application threads are executing, what they were executing, the degree of concurrency in thread execution, and the order in which work is performed in their application. The visualizations and analysis also allow users to sample thread execution contexts using a graphical user interface, as well as the generation of execution profile reports that may be filtered for a specific time range of execution and a subset of the threads running in the application. | 03-06-2014 |
20140082592 | MARKER CORRELATION OF APPLICATION CONSTRUCTS WITH VISUALIZATIONS - The visual display of the timing of execution of a marker. During a time frame, a first application program interface, which is configured to represent a first marker, is executed on a first thread of execution of an application. The first application program interface generates a first event for visualization on the display, when executed. During the time frame, a second application program interface, which is configured to represent a second marker, is also executed on the first thread of execution of the application. The second application program interface generates a second event for visualization on the display, when executed. A visualization of the first marker and the second marker is displayed on a timeline visualization of activity of the first thread of execution of the application in the context of the time frame. | 03-20-2014 |