2010 · 10 citations · 8 references
ComputingComputer EngineeringComputer ScienceCompilersComputer ArchitectureParallel ComputingData ParallelismGraphics Processing Unit ArchitectureGraphics Processing Unit ComputingParallel ArchitecturesReduction OperationsData Locality ManagementGpgpu ComputingGpu ArchitectureMany-core ArchitectureMany-core ProcessorsParallel ReductionReductionsTransformations
Reduction is a common component of many applications, but can often be the limiting factor for parallelization. Previous reduction work has focused on detecting reduction idioms and parallelizing the reduction operation by minimizing data communications or exploiting more data locality. While these techniques can be useful, they are mostly limited to simple code structures. In this paper, we propose a method for exploiting more parallelism by isolating the reduction from users of the intermediate results. The other main contribution of our work is enabling the parallelization of more complex reduction codes, including those that involve the use of intermediate reduction results. The proposed transformations are often implemented by programmers in an ad-hoc manner, but to the best of our knowledge no previous work has been proposed to automate these transformations for many-core architectures. We show that the automatic transformations can result in significant speedup compared to the original code using two benchmark applications.
8
Parallel Prefix Sum (Scan) with CUDA
Mark Harris · 2011 · 542 citations
The OpenMP source code repository
Antonio J. Dorta, C. Rodrı́guez, Francisco de Sande et al. · 2005 · 113 citations
Idiom recognition in the Polaris parallelizing compiler
Bill Pottenger, Rudolf Eigenmann · 1995 · 86 citations · Full text
Manuel Arenaz, Juan Touriño, Ramón Doallo · ACM Transactions on Programming Languages and Systems · 2008 · 36 citations · Full text