Pattern languages of program design
Half-sync/half-async: an architectural pattern for efficient and well-structured concurrent I/O
Pattern languages of program design 2
Active object: an object behavioral pattern for concurrent programming
Pattern languages of program design 2
Concurrent design patterns for resource sharing
Proceedings of the conference on TRI-Ada '97
Optimizing compilers for modern architectures: a dependence-based approach
Optimizing compilers for modern architectures: a dependence-based approach
Concurrent Programming in Java. Second Edition: Design Principles and Patterns
Concurrent Programming in Java. Second Edition: Design Principles and Patterns
Patterns in Java: A Catalog of Reusable Design Patterns Illustrated with UML
Patterns in Java: A Catalog of Reusable Design Patterns Illustrated with UML
Software Architecture in Practice
Software Architecture in Practice
An in-depth look at computer performance growth
ACM SIGARCH Computer Architecture News - Special issue: Workshop on architectural support for security and anti-virus (WASSA)
Distributed Event-Based Systems
Distributed Event-Based Systems
Ajax Design Patterns
Cluster Analysis for Data Mining and System Identification
Cluster Analysis for Data Mining and System Identification
Concurrent Programming on Windows
Concurrent Programming on Windows
A new look at the roles of spinning and blocking
Proceedings of the Fifth International Workshop on Data Management on New Hardware
The Datacenter as a Computer: An Introduction to the Design of Warehouse-Scale Machines
The Datacenter as a Computer: An Introduction to the Design of Warehouse-Scale Machines
Towards software performance engineering for multicore and manycore systems
ACM SIGMETRICS Performance Evaluation Review
Hi-index | 0.00 |
Multi-core CPUs are now common in modern computers. To get access to effectively an unlimited supply of compute resources, software programs that have been highly optimized to use a single CPU need to be converted where possible to use concurrency. We have initiated our concurrency software research for performance enhancement on a large-scale system with high throughput and low latency transactions. In this paper, we report our experience, experiments, and results in various aspects of concurrency design and programming, including multi-threaded prototypes, static and dynamic concurrency analysis, future techniques and trends, concurrency experiments, and concurrency design patterns. Based on the concurrency experiments, we achieved at least 80 percent overall performance increases as measured by transaction throughput. As a result, capital expenditures for large scale deployments can be significantly reduced.