Title
Controlling loops in parallel mercury code
Abstract
Recently we built a system that uses profiling data to automatically parallelize Mercury programs by finding conjunctions with expensive conjuncts that can run in parallel with minimal synchronization delays. This worked very well in many cases, but in cases of tail recursion, we got much lower speedups than we expected, due to excessive memory usage. In this paper, we present a novel program transformation that eliminates this problem, and also allows recursive calls inside parallel conjunctions to take advantage of tail recursion optimization. Our benchmark results show that our new transformation greatly increases the speedups we can get from parallel Mercury programs; in one case, it changes no speedup into almost perfect speedup on four cores.
Year
DOI
Venue
2012
10.1145/2103736.2103739
DAMP
Keywords
Field
DocType
benchmark result,tail recursion optimization,new transformation,parallel conjunction,controlling loop,novel program transformation,parallel mercury code,parallel mercury program,lower speedup,tail recursion,parallelize mercury program,perfect speedup,automatic parallelization,synchronization
Synchronization,Program transformation,Computer science,Profiling (computer programming),Parallel computing,Tail call,Recursion,Speedup
Conference
Citations 
PageRank 
References 
0
0.34
7
Authors
3
Name
Order
Citations
PageRank
Paul Bone131.79
Zoltan Somogyi2571141.85
Peter Schachte325622.76