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
Link To Document :
بازگشت