Title
Lazy tree splitting
Abstract
Nested 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.
Year
DOI
Venue
2012
10.1017/S0956796812000172
J. Funct. Program.
Keywords
Field
DocType
parallel array,lazy tree splitting,nested parallel loop,parallel decomposition,performance robustness,best performance,irregular parallel application,lazy binary splitting,new technique,standard ndp operation
Programming language,Idle,Computer science,Binary tree,Binary splitting,Theoretical computer science,Robustness (computer science),Parallel array,Scalability
Journal
Volume
Issue
ISSN
22
4-5
0956-7968
Citations 
PageRank 
References 
2
0.37
11
Authors
5
Name
Order
Citations
PageRank
Lars Bergstrom1815.23
Matthew Fluet229620.32
Mike Rainey318310.69
John H. Reppy489984.36
Adam Shaw5934.77