Concurrency Analysis for Sequential Consistency in Titanium

نویسنده

  • Amir Kamil
چکیده

As the limits of uniprocessor machines are being approached, application writers and system vendors alike have been turning to multiprocessor machines for performance. The major CPU manufacturers all have recently or will shortly introduce chips with multiple cores. Such systems, along with traditional multiprocessor machines, allow all processors to simultaneously access shared memory. This requires a memory consistency model to be defined, which determines in what order the memory updates on one processor appear to the other processors. The memory consistency model can be specified at the level of a programming language, which is crucial for languages that can be used on a wide variety of hardware. Language designers have traditionally been very reluctant to use the simplest model, sequential consistency, in which memory operations appear to occur in the order specified in the original program. This reluctance is due to a perception that such a model incurs prohibitive performance penalties, since it prevents reordering of operations and requires memory fences to be inserted in order to force the underlying hardware to respect ordering. Language designers instead have used complicated models [15, 19] that aren’t well-understood by programmers, or worse, ill-defined [8]. This is very problematic for programmers, since many common techniques such as spin-locks and presence bits depend on the details of the memory consistency model in order to function correctly. Various techniques have been proposed in order to decrease the cost of sequential consistency. In this paper, we present an interprocedural concurrency analysis for the Titanium programming language that can increase the precision of one such technique, cycle detection. We present both a basic algorithm and a modified one that only considers program execution paths that can occur in practice and prove that both algorithms are correct. We then apply these algorithms to a set of benchmarks, showing that they are effective in reducing the number of fences required to enforce sequential consistency in most of the benchmarks.

برای دانلود رایگان متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

منابع مشابه

Sequential Consistency in Distributed Systems : Theory and Implementation

Recently, distributed shared memory (DSM) systems have received much attention because such an abstraction simpliies programming. It has been shown that many practical applications using DSMs require competing operations. We have aimed at unifying theory and implementations of protocols for sequential consistency , which provides competing operations. The results are useful not only to clarify ...

متن کامل

Sequential Consistency in Distributed Systems

Recently, distributed shared memory (DSM) systems have received much attention because such an abstraction simpliies programming. It has been shown that many practical applications using DSMs require competing operations. We have aimed at unifying theory and implementations of protocols for sequential consistency, which provides competing operations. By adopting concepts from concurrency contro...

متن کامل

Scalable Concurrency Control for Parallel File Systems

Parallel le systems employ data declustering to increase I/O throughput. As a result, a single read or write operation can generate concurrent data accesses on multiple storage devices. Unless a concurrency control mechanism is employed, familiar le access semantics are likely to be violated. This paper details the transaction-based concurrency control mechanism implemented in the PIOUS paralle...

متن کامل

Themis: Enforcing Titanium Consistency on the NOW

Titanium is a single program, multiple data (SPMD) programming language based on Java. Titanium defines a data consistency model equivalent to the Java specification. This consistency model calls for locally sequential consistency, with global consistency attained at synchronization points and arbitrary write reordering. The Titanium language is targeted at homogeneous multiprocessors on distri...

متن کامل

Concurrency Control in Asynchronous Computations

When independently executing processes share data, some form of concurrency control is needed to enforce the atomicity and sequencing constraints imposed by the program. We believe that concurrency control is hard largely because existing architectural support is inadequate. We define a new class of interconnection networks called isotach networks and explore isotach-based concurrency control b...

متن کامل

ذخیره در منابع من


  با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید

عنوان ژورنال:

دوره   شماره 

صفحات  -

تاریخ انتشار 2005