Analysis and visualization of application concurrency and processor resource utilization
AssigneeMicrosoft Technology Licensing, LLC
InventorHazim Shafi
Life of this patent
Estimating the term…
Abstract
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.
Claims19
A method, comprising:
- receiving a plurality of context switch records and a total number of logical cores in a processing system, the context switch records generated by recording information including a process identifier, a thread identifier, and a timestamp into the context switch records and determined from context switches including thread context switches developed from executing a plurality of threads;
- extracting from the context switch records the information regarding the plurality of threads for a selected process executed on the logical cores over a course of time, the selected process corresponding with computer readable instructions as code executed by the logical cores;
- determining a representative number of logical cores executing on the plurality of threads of the selected process over the course of time;
- presenting a visualization of logical cores executing the plurality of threads of the selected process over the course of time as a graph representing the number of logical cores executing over the course of time;
- and
- linking corresponding sections of the code of the selected process to the graph of the number of logical cores over the course of time in the visualization for modification of the corresponding section of the code for execution on the logical cores.
A computer readable storage medium, which does not includes a transitory propagating signal, to store computer executable instructions to control a processor to:
- receive a plurality of context switch records and a total number of logical cores in a processing system, the context switch records generated by recording information including a process identifier, a thread identifier, and a timestamp into the context switch records and determined from context switches including thread context switches developed from executing a plurality of threads;
- extract from the context switch records the information regarding the plurality of threads for a selected process executed on the logical cores over a course of time, the selected process corresponding with computer-readable instructions as code executed by the logical cores;
- determine a representative number of logical cores executing the plurality of threads of the selected process over the course of time;
- present a visualization of logical cores executing the plurality of threads of the selected process over the course of time as a graph representing the number of logical cores executing over the course of time;
- and
- link corresponding sections of the code of the selected process to the graph of the number of logical cores over the course of time in the visualization for modification of the corresponding section of the code for execution on the logical cores.
A system, comprising:
- memory to store a set of instructions;
- and
- a processor to execute the set of instructions to:
- receive a plurality of context switch records and a total number of logical cores in a processing system, the context switch records generated by recording information including a process identifier, a thread identifier, and a timestamp into the context switch records and determined from context switches including thread context switches developed from executing a plurality of thread;
- extract from the context switch records the information regarding the plurality of threads for a selected process executed on the logical cores over a course of time, the selected process corresponding with computer readable instructions as code executed by the logical cores;
- determine a representative number of logical cores executing the plurality of threads of the selected process over the course of time;
- present a visualization of logical cores executing the plurality of threads of the selected process over the course of time as a graph representing the number of logical cores executing over the course of time;
- and
- link corresponding sections of the code of the selected process to the graph of the number of logical cores over the course of time in the visualization for modification of the corresponding section of the code for execution on the logical cores.
Dependencies are inferred from the claim text.