Generating synchronization statements in divide-and-conquer programs

نویسندگان

  • Pieter Hijma
  • Rob van Nieuwpoort
  • Ceriel J. H. Jacobs
  • Henri E. Bal
چکیده

0167-8191/$ see front matter 2011 Elsevier B.V doi:10.1016/j.parco.2011.10.007 ⇑ Corresponding author. E-mail addresses: [email protected] (P. Hijma), rob Divide-and-conquer is a well-known and important programming model that supports efficient execution of parallel applications on multi-cores, clusters, and grids. In divideand-conquer systems such as Satin or Cilk, recursive calls are automatically transformed into jobs that execute asynchronously. Since the calls are non-blocking, consecutive calls are the source of parallelism. However, programmers have to manually enforce synchronization with sync statements that indicate where the system has to wait for the result of the asynchronous jobs. In this article, we investigate the feasibility of automatically inserting sync statements to relieve programmers of the burden of thinking about synchronization. We investigate whether correctness can be guaranteed and to what extent the amount of parallelism is reduced. We discuss the code analysis algorithms that are needed in detail. To evaluate our approach, we have extended the Satin divide-and-conquer system, which targets efficient execution on grids, with a sync generator. Our experiments show that, with our analysis, we can automatically generate synchronization statements in virtually all real-life cases: in 31 out of 35 real-world applications the sync statements are placed optimally. The automatic placement is correct in all cases, and in one case the sync generator corrected synchronization errors in an application (FFT). 2011 Elsevier B.V. All rights reserved.

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

ثبت نام

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

منابع مشابه

Free Vibration Analysis of Repetitive Structures using Decomposition, and Divide-Conquer Methods

This paper consists of three sections. In the first section an efficient method is used for decomposition of the canonical matrices associated with repetitive structures. to this end, cylindrical coordinate system, as well as a special numbering scheme were employed. In the second section, divide and conquer method have been used for eigensolution of these structures, where the matrices are in ...

متن کامل

High Level Support For Divide - and - ConquerParallelismAttila

In this paper we present a simple language for expressing divide and conquer computations. The language allows for many variations in the standard divide and conquer paradigm. It is implemented using the Chare Kernel parallel programming system. The Chare Kernel supports dynamic creation of work with dynamic load balancing strategies, and machine independent execution. As a result, implementati...

متن کامل

Divide-and-conquer Generating Functions Elementary Sequences

Divide-and-conquer functions satisfy equations in F(z), F(z2), F(z4) . . .. Their generated sequences are mainly used in computer science, and they were analyzed pragmatically, that is, now and then a sequence was picked out for scrutiny. By giving several classes of ordinary generating functions togetherwith recurrences, we hope to helpwith the analysis of many such sequences, and try to class...

متن کامل

Covering vs. Divide-and-Conquer for Top-Down Induction of Logic Programs

Covering and divide-and-conquer are two wellestablished search techniques for top-down in­ duction of propositional theories However, for top-down induction of logic programs, only covering has been formalized and used extensively In this work, the divide-and-conquer technique is formalized as well and compared to the covering technique in a logic program­ ming framework Covering works by repea...

متن کامل

XJava: Exploiting Parallelism with Object-Oriented Stream Programming

This paper presents the XJava compiler for parallel programs. It exploits parallelism based on an object-oriented stream programming paradigm. XJava extends Java with new parallel constructs that do not expose programmers to low-level details of parallel programming on shared memory machines. Tasks define composable parallel activities, and new operators allow an easier expression of parallel p...

متن کامل

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


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

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

ثبت نام

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

عنوان ژورنال:
  • Parallel Computing

دوره 38  شماره 

صفحات  -

تاریخ انتشار 2012