skip to main content
OSTI.GOV title logo U.S. Department of Energy
Office of Scientific and Technical Information

Title: A Proposal for User-defined Reductions in OpenMP

Conference ·

Reductions are commonly used in parallel programs to produce a global result from partial results computed in parallel. Currently, OpenMP only supports reductions for primitive data types and a limited set of base language operators. This is a significant limitation for those applications that employ user-defined data types (e. g., objects). Implementing manual reduction algorithms makes software development more complex and error-prone. Additionally, an OpenMP runtime system cannot optimize a manual reduction algorithm in ways typically applied to reductions on primitive types. In this paper, we propose new mechanisms to allow the use of most pre-existing binary functions on user-defined data types as User-Defined Reduction (UDR) operators. Our measurements show that our UDR prototype implementation provides consistently good performance across a range of thread counts without increasing general runtime overheads.

Research Organization:
Lawrence Livermore National Laboratory (LLNL), Livermore, CA (United States)
Sponsoring Organization:
USDOE
DOE Contract Number:
W-7405-ENG-48
OSTI ID:
1020356
Report Number(s):
LLNL-CONF-426239; TRN: US201116%%285
Resource Relation:
Journal Volume: 6132; Conference: Presented at: 6th International Workshop on OpenMP, Tsukuba, Japan, Jun 14 - Jun 16, 2010
Country of Publication:
United States
Language:
English

References (6)

MapReduce: simplified data processing on large clusters journal January 2008
High-level Language Support for User-defined Reductions journal January 2002
Reducers and other Cilk++ hyperobjects
  • Frigo, Matteo; Halpern, Pablo; Leiserson, Charles E.
  • Proceedings of the twenty-first annual symposium on Parallelism in algorithms and architectures - SPAA '09 https://doi.org/10.1145/1583991.1584017
conference January 2009
Concepts: linguistic support for generic programming in C++ journal October 2006
OpenMP Extensions for Generic Libraries book January 2008
A Proposal for OpenMP for Java book January 2008