OpenMP tasks in IBM XL compilers

Tasking is the most significant feature included in the new OpenMP 3.0 standard. It was introduced to handle unstructured parallelism and broaden the range of applications that can be parallelized by OpenMP. This paper presents the design and implementation of the task model in the IBM XL parallelizing compilers. The task construct is significantly different from other OpenMP constructs. This paper discusses some of the unique challenges in implementing the task construct and its associated synchronization constructs in the compiler. We also present a performance evaluation of our implementation on a set of benchmarks and applications. We identify limitations in the current implentation and propose solutions for further improvement.

[1]  Robert Sedgewick,et al.  Implementing Quicksort programs , 1978, CACM.

[2]  M S Waterman,et al.  Identification of common molecular subsequences. , 1981, Journal of molecular biology.

[3]  Rosa M. Badia,et al.  CellSs: a Programming Model for the Cell BE Architecture , 2006, ACM/IEEE SC 2006 Conference (SC'06).

[4]  Bradley C. Kuszmaul,et al.  Cilk: an efficient multithreaded runtime system , 1995, PPOPP '95.

[5]  Alejandro Duran,et al.  Support for OpenMP tasks in Nanos v4 , 2007, CASCON.

[6]  Paul Petersen,et al.  Flexible control structures for parallelism in OpenMP , 2000, Concurr. Pract. Exp..

[7]  Xin-Min Tian,et al.  Intel OpenMP C++/Fortran Compiler for Hyper-Threading Technology: Implementation and Performance , 2002 .

[8]  Selim G. Akl,et al.  Optimal Parallel Merging and Sorting Without Memory Conflicts , 1987, IEEE Transactions on Computers.

[9]  Xavier Martorell,et al.  Nano-Threads Library Design, Implementation and Evaluation , 1995 .

[10]  Alejandro Duran,et al.  An Experimental Evaluation of the New OpenMP Tasking Model , 2007, LCPC.

[11]  Aart J. C. Bik,et al.  Efficient Exploitation of Parallelism on Pentium III and Pentium 4 Processor-Based Systems , 2001 .

[12]  Alejandro Duran,et al.  Extending the OpenMP Tasking Model to Allow Dependent Tasks , 2008, IWOMP.

[13]  Alejandro Duran,et al.  Evaluation of OpenMP Task Scheduling Strategies , 2008, IWOMP.

[14]  Alejandro Duran,et al.  A Proposal for Task Parallelism in OpenMP , 2007, IWOMP.

[15]  Eduard Ayguadé,et al.  Nanos mercurium: A research compiler for OpenMP , 2004 .

[16]  Vivek Sarkar,et al.  Automatic parallelization for symmetric shared-memory multiprocessors , 1996, CASCON.