Processor Core Utilization Visualization for Parallel Code Optimization

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Developers face challenges in writing effective parallel code for multiple core systems due to the lack of tools that provide meaningful insights into processor core utilization and opportunities for parallelism, leading to inefficiencies and errors.

Innovation Solution

An analysis and visualization method that tracks and displays the usage of processor cores over time, helping developers identify concurrency, interference from other processes, and opportunities for parallelism by analyzing context switches and presenting the data in a graphical format.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Loss of information

If current sequential development tools are used for parallel applications, then developers can determine processor use percentage, but the tools provide no meaningful insight on parallelism opportunities and no information on processor core utilization

Engineering Contradiction:
Improveinformation on parallelism opportunities and core utilizationVSAvoiddeveloper ability to understand and optimize parallel code
Core Design Contradiction:
Loss of informationVSEase of operation

Solution Approach 1:

The patent segments processor utilization information by individual cores, showing which specific cores are busy or idle. This segmentation provides granular visibility into parallelism opportunities that aggregate metrics cannot reveal, directly addressing the information gap in traditional tools

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent adds a spatial dimension to processor monitoring by visualizing core utilization across multiple dimensions (individual cores, threads, processes). This transforms the traditional single-dimension percentage metric into a multi-dimensional view that reveals parallelism patterns and contention points

Inventive Principle:
Principle #17Another dimension (Dimensionality change)

2Reliability

If developers manually track independent factors for parallel code development, then effective parallel code can be written, but the process becomes time consuming, difficult, and error-prone

Engineering Contradiction:
Improvequality of parallel codeVSAvoidtime to develop and debug parallel code
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The patent implements automated feedback mechanisms that continuously monitor processor core utilization and provide real-time information about parallelism effectiveness. This feedback loop enables developers to quickly identify and correct issues without manual tracking, improving both reliability and reducing development time

Inventive Principle:
Principle #23Feedback

Solution Approach 2:

The patent introduces an intermediary tool that automatically collects, analyzes, and presents parallelism-related metrics. This intermediary handles the complexity of tracking multiple independent factors, shielding developers from the difficulty and error-proneness of manual tracking while maintaining code quality

Inventive Principle:
Principle #24Intermediary (Mediator)

3Power

If processor clock frequency is increased, then sequential processing power increases, but the growth has flattened due to roadblocks in providing significant increases to processor clock frequency

Engineering Contradiction:
Improvesequential processing powerVSAvoidprocessor clock frequency growth
Core Design Contradiction:
PowerVSSpeed

Solution Approach 1:

The patent enables dynamic utilization of multiple processor cores through parallel application development. By distributing computational tasks across multiple cores dynamically, the system achieves continued performance growth despite clock frequency roadblocks, effectively bypassing the sequential processing power limitation

Inventive Principle:
Principle #15Dynamics

4Productivity

If sequential applications are executed on multiple core systems, then hardware resources are underutilized, but sequential applications obtain significantly less scaling as the number of processor cores increase

Engineering Contradiction:
Improveapplication scalingVSAvoidprocessor core utilization efficiency
Core Design Contradiction:
ProductivityVSLoss of energy

Solution Approach 1:

The patent provides developers with self-service tools to analyze and optimize their applications for parallel execution. By enabling developers to independently identify and exploit parallelism opportunities, the system achieves better resource utilization and application scaling without requiring complex automated parallelization infrastructure

Inventive Principle:
Principle #25Self-service

Data Source

PatentUS11144433B2Analysis and visualization of application concurrency and processor resource utilization
Publication Date: 2021.10.12 MICROSOFT CORP
  • US11144433B2 patent drawing
  • US11144433B2 patent drawing
  • US11144433B2 patent drawing

AI summary

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.