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 Bone | 1 | 3 | 1.79 |
Zoltan Somogyi | 2 | 571 | 141.85 |
Peter Schachte | 3 | 256 | 22.76 |