Accelerating Critical Sections

"Critical sections" are parts of the software for multicore architectures in which only one thread can execute at a given time, causing other threads needing access to shared data to wait for the current thread to complete the critical section.


Thus, when there is contention for shared data, execution of threads gets serialized, thereby reducing performance. Consequently, as the number of threads increases, the contention for critical sections also increases. In applications that have significant data synchronization -- Mozilla Firefox, MySQL, and operating system kernels, for instance -- critical sections limit performance and scalability.

As decribed in Accelerating Critical Section Execution with Asymmetric Multi-Core Architectures, by M. Aater Suleman, Onur Mutlu, Moinuddin K. Qureshi, and Yale N. Patt, ACS (short for "Accelerated Critical Sections") is a technique that leverages the cores of multicore systems to accelerate execution of critical sections. According to the author's evaluation on a set of 12 critical-section-intensive workloads, ACS reduces the average execution time and increases scalability.

Parallel Pattern 5: Stencil
All memory addresses used for reads are expressed as offsets
Distributing Work Across Cores Using .NET
A roll-your-own ThreadPool implementation
Looking For The Lost Packets: Part 2
Looking For The Lost Packets: Part 1

Real World Parallelism Webinar Series
  • February 18, 2010
    Lock Contention, Using Intel Parallel Studio to Improve Performance
    Speaker: Vasanth Tovinkere, Software Engineer, Intel Corporation (Bio)

    Vasanth Tovinkere is a software engineer in the Developer Products Division (DPD) at Intel. His current role involves defining novel approaches to understanding and visualizing parallel performance and consulting with strategic customers to help them prepare and deliver code for the multicore world. Vasanth has been involved in the development of automatic semantic event detectors for digital sports technologies in Intel Labs. He also has been awarded three patents and has two patents pending.

    Abstract:
    Discover how easy it is to use the power of Microsoft Visual Studio and Intel Parallel Studio to find performance issues due to lock contention in threaded applications. This ensures that shipped applications can take better advantage of multicore processors. In this webcast, we provide live demonstrations that show how to identify lock contentions issues with Visual Studio and Intel Parallel Studio, an add-in to Visual Studio that helps developers create fast, reliable code on multicore processors.t.