A proposal for user-defined reductions in OpenMP

  • Authors:
  • Alejandro Duran;Roger Ferrer;Michael Klemm;Bronis R. de Supinski;Eduard Ayguadé

  • Affiliations:
  • Barcelona Supercomputing Center;Barcelona Supercomputing Center;Intel Corporation;Lawrence Livermore National Laboratory;Barcelona Supercomputing Center

  • Venue:
  • IWOMP'10 Proceedings of the 6th international conference on Beyond Loop Level Parallelism in OpenMP: accelerators, Tasking and more
  • Year:
  • 2010

Quantified Score

Hi-index 0.00

Visualization

Abstract

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.