Toward Enhancing OpenMP's Work-Sharing Directives

OpenMP provides a portable programming interface for shared memory parallel computers (SMPs). Although this interface has proven successful for small SMPs, it requies greater flexibility in light of the steadily growing size of individual SMPs and the recent advent of multithreaded chips. In this paper, we describe two application development experiences that exposed these expressivity problems in the current OpenMP specification. We then propose mechanisms to overcome these limitations, including thread subteams and thread topologies. Thus, we identify language features that improve OpenMP application performance on emerging and large-scale platforms while preserving ease of programming.

[1]  Barbara M. Chapman,et al.  Analyses for the Translation of OpenMP Codes into SPMD Style with Array Privatization , 2003, WOMPAT.

[2]  Kunle Olukotun,et al.  The case for a single-chip multiprocessor , 1996, ASPLOS VII.

[3]  Eduard Ayguadé,et al.  OpenMP Extensions for Thread Groups and Their Run-Time Support , 2000, LCPC.

[4]  Victor Luchangco,et al.  The Fortress Language Specification Version 1.0 , 2007 .

[5]  Dean M. Tullsen,et al.  Simultaneous multithreading: Maximizing on-chip parallelism , 1995, Proceedings 22nd Annual International Symposium on Computer Architecture.

[6]  Vivek Sarkar,et al.  X10: an object-oriented approach to non-uniform cluster computing , 2005, OOPSLA '05.

[7]  Balaram Sinharoy,et al.  IBM Power5 chip: a dual-core multithreaded processor , 2004, IEEE Micro.

[8]  David H. Bailey,et al.  The Nas Parallel Benchmarks , 1991, Int. J. High Perform. Comput. Appl..

[9]  Bronis R. de Supinski,et al.  OpenMP Shared Memory Parallel Programming - International Workshops, IWOMP 2005 and IWOMP 2006, Eugene, OR, USA, June 1-4, 2005, Reims, France, June 12-15, 2006. Proceedings , 2008, IWOMP.

[10]  D. B. Davis,et al.  Sun Microsystems Inc. , 1993 .

[11]  Eduard Ayguadé,et al.  Automatic multilevel parallelization using OpenMP , 2003, Sci. Program..

[12]  Haoqiang Jin,et al.  Support of Multidimensional Parallelism in the OpenMP Programming Model , 2003, ISHPC.

[13]  Kunle Olukotun,et al.  Niagara: a 32-way multithreaded Sparc processor , 2005, IEEE Micro.

[14]  Eduard Ayguadé,et al.  Defining and Supporting Pipelined Executions in OpenMP , 2001, WOMPAT.