A Proposal for User-defined Reductions in OpenMP
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
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
|
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 |
Similar Records
Effective Vectorization with OpenMP 4.5
Data Locality Enhancement of Dynamic Simulations for Exascale Computing (Final Report)