Browse Prior Art Database

Method for shortening the lifetime of shared resources for critical section optimizations

IP.com Disclosure Number: IPCOM000146825D
Publication Date: 2007-Feb-24
Document File: 6 page(s) / 363K

Publishing Venue

The IP.com Prior Art Database

Abstract

Disclosed is a method for shortening the lifetime of shared resources for critical section optimizations. Benefits include improved functionality and improved performance.

This text was extracted from a Microsoft Word document.
At least one non-text object (such as an image or picture) has been suppressed.
This is the abbreviated version, containing approximately 49% of the total text.

Method for shortening the lifetime of shared resources for critical section optimizations

Disclosed is a method for shorteningthe lifetime of shared resources for critical section optimizations. Benefits include improved functionality and improved performance.

Background

      Conventionally, distributed/parallel systems have two types of resources,one that is shared by the systems and one that is local. Aparallel program has functions that can be executed in parallel, using multiple threads ormultiple processes. For example, thevariable “shared is a shared variable and local1/local2 are locally used (see Figure 1a).

      To ensure the consistency of shared resources, critical sections (CSs) are introduced. All the uses and definitions of shared resources should be protected in critical sections.Each shared resource is protected in a single critical section. After adding critical sections,the single critical section is used for the variable shared (see Figure 1b).

      To achieve the highest performance, most parallel optimized compilers minimize the critical sections and hide the latencies of memory accesses. However, shared resources are frequently used throughout the program because of developer preference or compileroptimization. Consequently, critical sections can be very large and havepoor applicationperformance. For example, the critical section for variable shared is very large. For example, if shared is allocated in memory, the latencies of accessing it are difficult to hide andwait scannot be moved out of the critical section (see Figure 2).

      To address the performance problem, processor architectures are highly parallel and have asynchronous (nonblocking) memory access operations. As a result, the latency of the memory accesses and other computations in different threads can overlap each other.To ensure the correctness of the program, critical sections are always created for protecting shared resource access. However, this approach conflicts with parallelism.All the processing engines in a parallel system canhalt execution when a processoris in the critical section waiting for the result of using shared resources.

      In this disclosure, “CSBegin/CSEnd” describe critical section’s beginning and ending portions. “CSiBegin/CSiEnd” (where iis a constant integer) describe the beginning and ending portions of the ith critical section.

      Cache is conventionally used as a fast buffer for memory to minimize the input/output access time.

General description

      The disclosed method shortens the lifetime of shared resources to minimizecritical sections and hide memory accesslatencies. The method allocates local resources that correspond to shared resources.All uses of shared resources are replac...