Incremental flattening for nested data parallelism

Author(s):  
Troels Henriksen ◽  
Frederik Thorøe ◽  
Martin Elsman ◽  
Cosmin Oancea
Keyword(s):  
2012 ◽  
Vol 22 (4-5) ◽  
pp. 382-438 ◽  
Author(s):  
LARS BERGSTROM ◽  
MATTHEW FLUET ◽  
MIKE RAINEY ◽  
JOHN REPPY ◽  
ADAM SHAW

AbstractNested data-parallelism (NDP) is a language mechanism that supports programming irregular parallel applications in a declarative style. In this paper, we describe the implementation of NDP in Parallel ML (PML), which is a part of the Manticore system. One of the main challenges of implementing NDP is managing the parallel decomposition of work. If we have too many small chunks of work, the overhead will be too high, but if we do not have enough chunks of work, processors will be idle. Recently, the technique of Lazy Binary Splitting was proposed to address this problem for nested parallel loops over flat arrays. We have adapted this technique to our implementation of NDP, which uses binary trees to represent parallel arrays. This new technique, which we call Lazy Tree Splitting (LTS), has the key advantage of performance robustness, i.e., it does not require tuning to get the best performance for each program. We describe the implementation of the standard NDP operations using LTS and present experimental data that demonstrate the scalability of LTS across a range of benchmarks.


1996 ◽  
Vol 24 (4) ◽  
pp. 291-317 ◽  
Author(s):  
Dean Engelhardt ◽  
Andrew Wendelborn
Keyword(s):  

2012 ◽  
Vol 47 (9) ◽  
pp. 247-258 ◽  
Author(s):  
Lars Bergstrom ◽  
John Reppy
Keyword(s):  

Author(s):  
Manuel M. T. Chakravarty ◽  
Gabriele Keller ◽  
Roman Lechtchinsky ◽  
Wolf Pfannenstiel
Keyword(s):  

Sign in / Sign up

Export Citation Format

Share Document