Abstract
This paper presents a new version of the OMPi OpenMP C compiler, enhanced by lightweight runtime support based on user-level multithreading. A large number of threads can be spawned for a parallel region and multiple levels of parallelism are supported efficiently, without introducing additional overheads to the OpenMP library. Management of nested parallelism is based on an adaptive distribution scheme with hierarchical work stealing that not only favors computation and data locality but also maps directly to recent architectural developments in shared memory multiprocessors. A comparative performance evaluation of several OpenMP implementations demonstrates the efficiency of our approach.
Chapter PDF
Similar content being viewed by others
Keywords
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.
References
Dimakopoulos, V.V., Leontiadis, E., Tzoumas, G.: A Portable C Compiler for OpenMP V.2.0. In: Proc. of the 5th European Workshop on OpenMP (EWOMP 2003), Aachen, Germany (October 2003)
Ayguade, E., Gonzalez, M., Martorell, X., Labarta, J., Navarro, N., Oliver, J.: NanosCompiler: Supporting Flexible Multilevel Parallelism in OpenMP. Concurrency: Practice and Experience 12(12), 1205–1218 (2000)
Sato, M., Satoh, S., Kusano, K., Tanaka, Y.: Design of OpenMP Compiler for an SMP Cluster. In: Proc. of the 1st European Workshop on OpenMP (EWOMP 1999), Lund, Sweden (September 1999)
Tanaka, Y., Taura, K., Sato, M., Yonezawa, A.: Performance Evaluation of OpenMP Applications with Nested Parallelism. In: Dwarkadas, S. (ed.) LCR 2000. LNCS, vol. 1915, Springer, Heidelberg (2000)
Karlsson, S.: A Portable and Efficient Thread Library for OpenMP. In: Proc. of the 6th European Workshop on OpenMP (EWOMP 2004), Stockholm, Sweden (October 2004)
Novillo, D.: OpenMP and automatic parallelization in GCC. In: Proc. of the 2006 GCC Summit, Ottawa, Canada (June 2006)
Sun Microsystems.: Sun Studio 10: OpenMP API User’s Guide available at: http://docs.sun.com/app/docs/doc/819-0501
Tian, X., Hoeflinger, J.P., Haab, G., Chen, Y.K., Girkar, M., Shah, S.: A compiler for exploiting nested parallelism in OpenMP programs. Parallel Computing 31, 960–983 (2005)
Iwashita, H., Kaneko, M., Aoki, M., Hotta, K., van Waveren, M.: On the Implementation of OpenMP 2.0 Extensions in the Fujitsu PRIMEPOWER compiler. In: Proc. of the International Workshop on OpenMP: Experiences and Implementations (WOMPEI ’03), Tokyo, Japan (November 2003)
Duran, A., Silvera, R., Corbalan, J., Labart, J.: Runtime Adjustment of Parallel Nested Loops. In: Chapman, B.M. (ed.) WOMPAT 2004. LNCS, vol. 3349, Springer, Heidelberg (2004)
Nikolopoulos, D.S., Polychronopoulos, E.D., Papatheodorou, T.S.: Efficient Runtime Thread Management for the Nanothreads Programming Model. In: Proc. of the 2nd IEEE IPPS/SPDP Workshop on Runtime Systems for Parallel Programming, Orlando, FL, USA, vol. 1388, pp. 183–194. IEEE Computer Society Press, Los Alamitos (1998)
Rufai, R., Bozyigit, M., Alghamdi, J., Ahmed, M.: Multithreaded Parallelism with OpenMP. Parallel Processing Letters 15(4), 367–378 (2005)
INRIA, T.R.: Marcel: A POSIX-compliant thread library for hierarchical multiprocessor machines, available at: http://runtime.futurs.inria.fr/marcel
Thibault, S.: A Flexible Thread Scheduler for Hierarchical Multiprocessor Machines. In: Proc. of the 2nd International Workshop on Operating Systems, Programming Environments and Management Tools for High-Performance Computing on Clusters (COSET-2), Cambridge, USA (June 2005)
Bull, J.M.: Measuring Synchronization and Scheduling Overheads in OpenMP. In: Proc. of the 1st European Workshop on OpenMP (EWOMP 1999), Lund, Sweden (September 1999)
Hadjidoukas, P.E., Amsaleg, L.: Parallelization of a Hierarchical Data Clustering Algorithm Using OpenMP. In: Proc. the 2nd International Workshop on OpenMP (IWOMP 2006), Reims, France (June 2006)
Author information
Authors and Affiliations
Editor information
Rights and permissions
Copyright information
© 2007 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Hadjidoukas, P.E., Dimakopoulos, V.V. (2007). Nested Parallelism in the OMPi OpenMP/C Compiler. In: Kermarrec, AM., Bougé, L., Priol, T. (eds) Euro-Par 2007 Parallel Processing. Euro-Par 2007. Lecture Notes in Computer Science, vol 4641. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-540-74466-5_70
Download citation
DOI: https://doi.org/10.1007/978-3-540-74466-5_70
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-74465-8
Online ISBN: 978-3-540-74466-5
eBook Packages: Computer ScienceComputer Science (R0)