90 likes | 222 Vues
This paper addresses the challenges of managing concurrency in modern computers with multiple resources, focusing on balancing CPU-bound and I/O-bound applications. It highlights that while effective parallelism can enhance performance, excessive concurrency can degrade system efficiency. The authors propose a feedback-based solution that monitors CPU and I/O performance parameters and uses historical data to optimize workload distribution. By categorizing applications and adjusting concurrency levels, the proposed concurrency manager aims to improve overall system performance and resource utilization across diverse platforms.
E N D
A User-Lever Concurrency Manager Hongsheng Lu & Kai Xiao
Problem • Modern Computers with multiple resources • Physical concurrency makes effective parallelism and improves the performance • However, over loading concurrency would actually deteriorate the system running performance
Observation: CPU bound • CPU bound test : Simulation program Observation: 99% CPU for user Observation: Swap-in and Swap-out begin If increase the workload of application
Observation: IO bound • IO bound test: Write 50MB data to disk per program (30 total) • Extreme test: Write 1GB data to disk per program (90 total) Writing speed < Flushing speed Processes blocked Writing speed >> Flushing speed Too Many process blocked Writing speed >= Flushing speed Processes blocked n=1 n=90 Running time = 4.5 s Running time = 4.0 s Running time = 189 s Running time = 220 s
Solution: Feedback & Histories • Key Idea: keeping CPU and IO in the best utilization situation • Solution stage One: Using feedback method to monitor the key parameters of CPU and IO running performance, and manage the concurrency level. • For CPU bound, monitor the free memory threshold • For IO bound, monitor the process block queue • whether a writing process is blocked by itself
However… • The problem of feedback • Solution stage Two: Program History Using the history records to divide programs into CPU bound group and IO bound group Fork new process according to feedback and history Running time = 277 s
Effective Solution Running time = 206 s
Progress and Future works • Problem Identification • Solution Design • Solution Prototype verified • Software: Monitor and Feedback • History Applicability • Under what situation the algorithm works well • Application Diversity • Application with increasing memory request • CPU bound and IO bound with conflicting memory request • Platform Diversity
Final Goal • A simple concurrency manager that runs a arbitrary list of commands and application as fast as possible on a wide variety of machines.