Dynamic Tuning of Multiprocessor Systems for Contention
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Multiprocessor and multicore computing systems often suffer from inefficiencies in parallelism due to synchronization issues and resource contention, leading to decreased application performance and scalability as computational power increases.
Innovation Solution
Dynamic tuning of multiprocessor and multicore systems through profiling and scheduling circuitry to rebalance application distribution across CPUs and cores, including re-binding applications to fewer CPUs, disabling hyperthreading, and disabling cores, based on analysis of performance counters to address access contention and resource constraints.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Power
If the number of processors and processor cores is increased to provide greater computing power, then parallel processing capability is improved, but application performance deteriorates due to synchronization issues and resource contention
Solution Approach 1:
The system dynamically adjusts the binding of application processes to processor cores based on real-time performance monitoring. The scheduler circuitry continuously monitors performance counters and dynamically rebinds processes to different cores or adjusts the number of active cores, transforming the static processor allocation into a dynamic adaptive system that optimizes performance while utilizing available computing power
Solution Approach 2:
The system changes operational parameters by adjusting process-to-core binding configurations based on detected scalability problems. When access contention or resource constraints are identified, the scheduler modifies binding parameters such as which processes run on which cores, or disables hyperthreading and certain cores, thereby changing the system's operational state to eliminate performance degradation
2Productivity
If software applications are partitioned for parallel execution across multiple components, then computational throughput is improved, but synchronization efficiency deteriorates causing performance loss
Solution Approach 1:
The system applies different binding configurations to different processes based on their specific synchronization characteristics and resource access patterns. Rather than uniformly distributing all processes, the scheduler identifies which processes benefit from parallel execution and which suffer from synchronization overhead, applying localized optimization to each process's core assignment
3Use of energy by moving object
If limited resources are shared among multiple parallel components, then resource utilization is improved, but access contention increases leading to performance degradation
Solution Approach 1:
The system extracts and isolates processes that cause access contention from shared resource environments. When contention is detected on specific resources, the scheduler rebinds affected processes to different cores or disables hyperthreading for those cores, effectively removing the contending processes from the shared resource context and eliminating the contention while maintaining resource utilization
Data Source
AI summary
Generally, this disclosure provides systems, devices, methods and computer readable media for dynamic tuning of multiprocessor and multicore computing systems to improve application performance and scalability. A system may include a number of processing units (CPUs) and profiling circuitry configured to detect the existence of a scalability problem associated with the execution of an application on CPUs and to determine if the scalability problem is associated with an access contention or a resource constraint. The system may also include scheduling circuitry configured to bind the application to a subset of the total number of CPUs if the scalability problem is associated with access contention.


