Analysis and visualization of application concurrency and processor resource utilization
First Claim
1. A computing device implemented method, comprising:
- receiving a plurality of context switch records and a total number of logical cores in a processing system, the context switch records are generated by recording context switches developed from executing a plurality of threads of at least one selected process in a concurrent application;
extracting from the context switch records a number of the logical cores used to perform the at least one selected process over a course of time;
separating the course of time into periodic intervals;
determining a representative number of logical cores executing the selected process for each of the periodic intervals;
presenting the representative number of logical cores executing the selected process for each of the periodic intervals against the total number of logical cores over the course of time to display contention for processor resources and how the contention for processor resources varies with time identifying varying degrees of parallelism in the at least one selected process; and
identifying corresponding sections of code executing the selected process for modification.
2 Assignments
0 Petitions
Accused Products
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.
35 Citations
20 Claims
-
1. A computing device implemented method, comprising:
-
receiving a plurality of context switch records and a total number of logical cores in a processing system, the context switch records are generated by recording context switches developed from executing a plurality of threads of at least one selected process in a concurrent application; extracting from the context switch records a number of the logical cores used to perform the at least one selected process over a course of time; separating the course of time into periodic intervals; determining a representative number of logical cores executing the selected process for each of the periodic intervals; presenting the representative number of logical cores executing the selected process for each of the periodic intervals against the total number of logical cores over the course of time to display contention for processor resources and how the contention for processor resources varies with time identifying varying degrees of parallelism in the at least one selected process; and identifying corresponding sections of code executing the selected process for modification. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10)
-
-
11. A computer readable storage medium, which does not includes a transitory propagating signal, storing computer executable instructions for controlling a computing device to perform 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 are generated by recording context switches developed from executing a plurality of threads in at least one selected process of a concurrent application; extracting from the context switch records a number of the logical cores used to perform the selected process over a course of time; extracting from the context switch records a number of the logical cores used to perform an idle process over a course of time; separating the course of time into periodic intervals; determining a representative number of logical cores executing each of the selected and idle processes for each of the periodic intervals; determining a representative number of logical cores executing other processes for each of the periodic intervals; presenting the representative number of logical cores executing the selected process, the idle process, and the other processes for each of the periodic intervals against the total number of logical cores over the course of time to display contention for processor resources and how the contention for processor resources varies with time identifying regions of contention in the at least one selected process in a visualization; and linking corresponding sections of code of the selected process for modification to the visualization. - View Dependent Claims (12, 13, 14, 15, 16, 17, 18)
-
-
19. A system, comprising:
-
a processor; a memory storing instructions executable by the processor to; receive a plurality of context switch records, the context switch records are generated with a trace recording context switches and developed from executing a plurality of threads in at least one selected process of a concurrent application over a duration of time; separate the duration of time into equal periodic intervals of time; extract from the context switch records a number of the plurality of logical cores used to perform the selected process over the duration of time; extract from the context switch records a number of the logical cores used to perform an idle process over the duration of time; extract from the context switch records a number of the logical cores used to perform a system process over the duration of time; determine a representative number of logical cores executing each of the selected process, idle process, and system process for each of the periodic intervals of time; determine a representative number of logical cores executing other processes for each of the periodic intervals of time including subtracting the sum of the representative numbers of the logical cores used to perform the selected process, the idle process, and the system process from the total number of logical cores for a given periodic interval of time; present the representative number of logical cores executing the selected process, the idle process, the system process, and the other processes for each of the periodic intervals in an area graph to display contention for processor resources and how the contention for processor resources varies with time and identify degrees of parallelism in the area graph; and link corresponding sections of code available for modification to user-selected portions of the area graph. - View Dependent Claims (20)
-
Specification