skip to main content
10.1145/1944862.1944867acmotherconferencesArticle/Chapter ViewAbstractPublication PageshipeacConference Proceedingsconference-collections
research-article

A stream-computing extension to OpenMP

Published: 24 January 2011 Publication History

Abstract

This paper introduces an extension to OpenMP3.0 enabling stream programming with minimal, incremental additions that seamlessly integrate into the current specification. The stream programming model decomposes programs into tasks and explicits the flow of data among them, thus exposing data, task and pipeline parallelism. It helps the programmers to express concurrency and data locality properties, avoiding non-portable low-level code and early optimizations. We survey the diverse motivations and constraints converging towards the design of our simple yet powerful language extension, and we present experimental results of a prototype implementation in a public branch of GCC 4.5.

References

[1]
Arvind, R. S. Nikhil, and K. Pingali. I-structures: Data structures for parallel computing. ACM Trans. on Programming Languages and Systems, 11(4):598--632, 1989.
[2]
P. Bellens, J. M. Pérez, R. M. Badia, and J. Labarta. CellSs: a programming model for the Cell BE architecture. In SC, 2006.
[3]
R. H. Bisseling. Parallel Scientific Computation: A Structured Approach using BSP and MPI. Oxford University Press, Mar. 2004.
[4]
The Brook Language. http://graphics.stanford.edu/projects/brookgpu/lang.html.
[5]
P. M. Carpenter, D. Ródenas, X. Martorell, A. Ramírez, and E. Ayguadé. A streaming machine description and programming model. In SAMOS, pages 107--116, 2007.
[6]
R. Cytron. Doacross: Beyond vectorization for multiprocessors. In Intl. Conf. on Parallel Processing (ICPP), Saint Charles, IL, 1986.
[7]
J. B. Dennis and G. R. Gao. An efficient pipelined dataflow processor architecture. In Supercomputing (SC'88), pages 368--373, 1988.
[8]
H. M. et al. ACOTES project: Advanced compiler technologies for embedded streaming. Intl. J. of Parallel Programming, 2010. Special issue on European HiPEAC network of excellence member's projects.
[9]
M. Frigo, C. E. Leiserson, and K. H. Randall. The implementation of the Cilk-5 multithreaded language. In ACM Symp. on Programming Language Design and Implementation (PLDI'98), pages 212--223, Montreal, Quebec, June 1998.
[10]
M. Gordon, W. Thies, and S. Amarasinghe. Exploiting coarse-grained task, data, and pipeline parallelism in stream programs. In International Conference on Architectural Support for Programming Languages and Operating Systems, San Jose, CA, Oct 2006.
[11]
N. Halbwachs, P. Caspi, P. Raymond, and D. Pilaud. The synchronous dataflow programming language Lustre. Proceedings of the IEEE, 79(9):1305--1320, Sept. 1991.
[12]
G. Kahn. The semantics of a simple language for parallel programming. In J. L. Rosenfeld, editor, Information processing, pages 471--475, Stockholm, Sweden, Aug. 1974. North Holland, Amsterdam.
[13]
C. Kyriacou, P. Evripidou, and P. Trancoso. Data-driven multithreading using conventional microprocessors. IEEE Trans. on Parallel Distributed Systems, 17(10):1176--1188, 2006.
[14]
E. A. Lee and D. G. Messerschmitt. Static scheduling of synchronous data flow programs for digital signal processing. IEEE Trans. Computers, 36(1):24--25, 1987.
[15]
V. Marjanovic, J. Labarta, E. Ayguadé, and M. Valero. Effective communication and computation overlap with hybrid MPI/SMPSs. In PPOPP, 2010.
[16]
A. Munshi. The OpenCL specification, v. 1.0, revision 29. www.khronos.org/registry/cl/specsopencl-1.0.29.pdf, 2008.
[17]
V. Pankratius, A. Jannesari, and W. F. Tichy. Parallelizing bzip2: A case study in multicore software engineering. IEEE Softw., 26(6):70--77, 2009.
[18]
J. Planas, R. M. Badia, E. Ayguadé, and J. Labarta. Hierarchical task-based programming with starss. Intl. J. on High Performance Computing Architecture, 23(3):284--299, 2009.
[19]
A. Pop, S. Pop, H. Jagasia, J. Sjödin, and P. H. J. Kelly. Improving GNU compiler collection infrastructure for streamization. In Proceedings of the 2008 GCC Developers' Summit, pages 77--86, 2008. http://www.gccsummit.org/2008.
[20]
K. Stavrou, M. Nikolaides, D. Pavlou, S. Arandi, P. Evripidou, and P. Trancoso. Tflux: A portable platform for data-driven multithreading on commodity multicore systems. In Intl. Conf. on Parallel Processing (ICPP'08), pages 25--34, Portland, Oregon, Sept. 2008.
[21]
The StreamIt language. http://www.cag.lcs.mit.edu/streamit/.
[22]
The OpenMP Architecture Review Board. OpenMP Application Program Interface. http://www.openmp.org/mp-documents/spec30.pdf.
[23]
I. Watson and J. R. Gurd. A practical data flow computer. IEEE Computer, 15(2):51--57, 1982.

Cited By

View all
  • (2023)Synchronous Deterministic Parallel Programming for Multi-Cores with ForeCACM Transactions on Programming Languages and Systems10.1145/359159445:2(1-74)Online publication date: 26-Jun-2023
  • (2022)A Pipeline Pattern Detection Technique in PollyWorkshop Proceedings of the 51st International Conference on Parallel Processing10.1145/3547276.3548445(1-10)Online publication date: 29-Aug-2022
  • (2021)Assessment of OpenMP Master–Slave Implementations for Selected Irregular Parallel ApplicationsElectronics10.3390/electronics1010118810:10(1188)Online publication date: 16-May-2021
  • Show More Cited By

Recommendations

Comments

Information & Contributors

Information

Published In

cover image ACM Other conferences
HiPEAC '11: Proceedings of the 6th International Conference on High Performance and Embedded Architectures and Compilers
January 2011
226 pages
ISBN:9781450302418
DOI:10.1145/1944862
Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

Sponsors

  • HiPEAC: HiPEAC Network of Excellence

In-Cooperation

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 24 January 2011

Permissions

Request permissions for this article.

Check for updates

Qualifiers

  • Research-article

Conference

HIPEAC '11
Sponsor:
  • HiPEAC

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)8
  • Downloads (Last 6 weeks)0
Reflects downloads up to 18 Jan 2025

Other Metrics

Citations

Cited By

View all
  • (2023)Synchronous Deterministic Parallel Programming for Multi-Cores with ForeCACM Transactions on Programming Languages and Systems10.1145/359159445:2(1-74)Online publication date: 26-Jun-2023
  • (2022)A Pipeline Pattern Detection Technique in PollyWorkshop Proceedings of the 51st International Conference on Parallel Processing10.1145/3547276.3548445(1-10)Online publication date: 29-Aug-2022
  • (2021)Assessment of OpenMP Master–Slave Implementations for Selected Irregular Parallel ApplicationsElectronics10.3390/electronics1010118810:10(1188)Online publication date: 16-May-2021
  • (2021)Task-Based Programming Models for Heterogeneous Recurrent WorkloadsApplied Reconfigurable Computing. Architectures, Tools, and Applications10.1007/978-3-030-79025-7_8(108-122)Online publication date: 23-Jun-2021
  • (2019)Efficient and Scalable Execution of Fine-Grained Dynamic Linear PipelinesACM Transactions on Architecture and Code Optimization10.1145/330741116:2(1-26)Online publication date: 18-Apr-2019
  • (2019)Implementing the Matrix Multiplication with DFC on Kunlun Small Scale Computer2019 20th International Conference on Parallel and Distributed Computing, Applications and Technologies (PDCAT)10.1109/PDCAT46702.2019.00032(115-120)Online publication date: Dec-2019
  • (2018)Efficient parallel determinacy race detection for two-dimensional dagsACM SIGPLAN Notices10.1145/3200691.317851553:1(368-380)Online publication date: 10-Feb-2018
  • (2018)Efficient parallel determinacy race detection for two-dimensional dagsProceedings of the 23rd ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming10.1145/3178487.3178515(368-380)Online publication date: 10-Feb-2018
  • (2018)Unifying Fixed Code Mapping, Communication, Synchronization and Scheduling Algorithms for Efficient and Scalable Loop PipeliningIEEE Transactions on Parallel and Distributed Systems10.1109/TPDS.2018.281720729:9(2136-2149)Online publication date: 1-Sep-2018
  • (2018)HSTREAM: A Directive-Based Language Extension for Heterogeneous Stream Computing2018 IEEE International Conference on Computational Science and Engineering (CSE)10.1109/CSE.2018.00026(138-145)Online publication date: Oct-2018
  • Show More Cited By

View Options

Login options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media