• DocumentCode
    3145165
  • Title

    Automatically Inserting Synchronization Statements in Divide-and-Conquer Programs

  • Author

    Hijma, Pieter ; Van Nieuwpoort, Rob V. ; Jacobs, Ceriel J H ; Bal, Henri E.

  • Author_Institution
    Dept. of Comput. Sci., Vrije Univ. Amsterdam, Amsterdam, Netherlands
  • fYear
    2011
  • fDate
    16-20 May 2011
  • Firstpage
    1233
  • Lastpage
    1241
  • Abstract
    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 a divide-and-conquer system 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, the programmer has to manually enforce synchronization with sync statements that indicate where the system has to wait for the result of the asynchronous jobs. In this paper, we investigate the possibility to automatically insert sync statements to relieve the programmer 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. The fact that Satin uses Java as a base language helps the sync generator to reason about control flow and aliasing of references to objects. Our experiments show that, with our analysis, we can automatically generate synchronization points 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).
  • Keywords
    Java; divide and conquer methods; parallel programming; program diagnostics; Cilk; Java; Satin; code analysis algorithm; divide-and-conquer program; parallel application; recursive call; sync statement; synchronization statement; Arrays; Generators; Java; Parallel processing; Program processors; Programming; Synchronization;
  • fLanguage
    English
  • Publisher
    ieee
  • Conference_Titel
    Parallel and Distributed Processing Workshops and Phd Forum (IPDPSW), 2011 IEEE International Symposium on
  • Conference_Location
    Shanghai
  • ISSN
    1530-2075
  • Print_ISBN
    978-1-61284-425-1
  • Electronic_ISBN
    1530-2075
  • Type

    conf

  • DOI
    10.1109/IPDPS.2011.272
  • Filename
    6008974