Abstract
To date OpenMP has been considered the work horse for data parallelism and more recently task level parallelism. The model has been one of shared memory working in parallel on arrays of a uniform nature, but many applications do not meet these often restrictive access patterns. With the development of accelerators on the one hand and moving beyond the node to the cluster on the other, OpenMP’s shared memory approach does not easily capture the complex memory hierarchies found in these heterogeneous systems.
Streams provide a natural approach to coupling data with its corresponding access patterns. Data within a stream can be easily and efficiently distributed across complex memory hierarchies, while retaining a shared memory point of view for the application programmer.
In this paper we present a modest extension to OpenMP to support data partitioning and streaming. Rather than add numerous new directives our approach is to utilize exiting streaming technology and extend OpenMP simply to control streams in the context of threading. The integration of streams allows the programmer to easily connect distinct compute components together in an efficient manner, supporting both, the conventional shared memory model of OpenMP and also the transparent integration of local non-shared memory.
Access provided by Autonomous University of Puebla. Download to read the full chapter text
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
Pham, D., Asano, S., Bolliger, M., Day, M.N., Hofstee, H.P., Johns, C., Kahle, J., Kameyama, A., Keaty, J., Masubuchi, Y., Riley, M., Shippy, D., Stasiak, D., Suzuoki, M., Wang, M., Warnock, J., Weitzel, S., Wendel, D., Yamazaki, T., Yazawa, K.: The design and implementation of a first-generation CELL processor. In: Solid-State Circuits Conference, 2005. Digest of Technical Papers. ISSCC, vol. 1, pp. 184–592. IEEE International, Los Alamitos (2005)
ClearSpeed Technology Plc: White paper: CSX Processor Architecture (2004)
Gaster, B.R., Lacey, D., Sumner, B.: Open Accelerator: programming at the edges (submitted 2007)
Tarditi, D., Puri, S., Oglesby, J.: Accelerator: using data parallelism to program GPUs for general-purpose uses. In: ASPLOS-XII: Proceedings of the 12th in- ternational conference on Architectural support for programming languages and operating systems, pp. 325–335. ACM Press, New York (2006)
Thies, W., Karczmarek, M., Amarasinghe, S.P.: StreamIt a language for streaming applications. Computational Complexity, 179–196 (2002)
Buck, I.: Brook: A Streaming Programming Language. Stanford University (2001)
Carpenter, P., Rdenas, D., Martorell, X., Ramrez, A., Ayguad, E.: A Streaming Machine Description and Programming Model. In: Vassiliadis, S., Bereković, M., Hämäläinen, T.D. (eds.) SAMOS 2007. LNCS, vol. 4599, pp. 107–116. Springer, Heidelberg (2007)
Huang, L., Chapman, B., Liu, Z.: Towards a more efficient implementation of OpenMP for clusters via translation to Global Arrays. Parallel Comput. 31(10- 12), 1114–1139 (2005)
Basumallik, A., Min, S.J., Eigenmann, R.: Programming distributed memory sys- tems using openmp. In: 12th international workshop on High-Level Parallel Programming Models and Supportive Environments (2007)
Sato, M., Harada, H., Hasegawa, A., Ishikawa, Y.: Cluster-enabled OpenMP: An OpenMP compiler for the scash software distributed shared memory system. Sci. Program 9(2,3), 123–130 (2001)
Eichenberger, A.E., O’Brien, J.K., O’Brien, K.M., Wu, P., Chen, T., Oden, P.H., Prener, D.A., Shepherd, J.C., So, B., Sura, Z., Wang, A., Zhang, T., Zhao, P., Gschwind, M.K., Archambault, R., Gao, Y., Koo, R.: Using advanced compiler technology to exploit the performance of the Cell Broadband EngineTM architecture. IBM Syst. J. 45(1), 59–84 (2006)
Barcelona Supercomputing Center: The NANOS Environment
Bradley, C., Gaster, B.R.: Exploiting loop-level parallelism for SIMD arrays using OpenMP. In: International Workshop on OpenMP (2007)
Lokhmotov, A., Gaster, B.R., Mycroft, A., Stuttard, D., Hickey, N.: Revisiting SIMD programming. In: 20th InternationalWorkshop on Languages and Compilers for Parallel Computing (2007)
Curtis-Maury, M., Ding, X., Antonopoulos, C.D., Nikolopoulos, D.S.: An evaluation of OpenMP on current and emerging multithreaded/multicore processors. In: First International Workshop on OpenMP (2005)
Zhang, Y., Burcea, M., Cheng, V., Ho, R., Voss, M.: An adaptive OpenMP loop scheduler for Hyperthreaded SMPs. In: International Conference on Parallel and Distributed Computing Systems, pp. 256–263 (2004)
Author information
Authors and Affiliations
Editor information
Rights and permissions
Copyright information
© 2008 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Gaster, B.R. (2008). Streams: Emerging from a Shared Memory Model. In: Eigenmann, R., de Supinski, B.R. (eds) OpenMP in a New Era of Parallelism. IWOMP 2008. Lecture Notes in Computer Science, vol 5004. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-540-79561-2_12
Download citation
DOI: https://doi.org/10.1007/978-3-540-79561-2_12
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-79560-5
Online ISBN: 978-3-540-79561-2
eBook Packages: Computer ScienceComputer Science (R0)