Skip to main content

The Abstract Streaming Machine: Compile-Time Performance Modelling of Stream Programs on Heterogeneous Multiprocessors

  • Chapter
  • First Online:
Transactions on High-Performance Embedded Architectures and Compilers V

Part of the book series: Lecture Notes in Computer Science ((THIPEAC,volume 11225))

  • 377 Accesses

Abstract

Stream programming is a promising step towards portable, efficient, correct use of parallelism. A stream program is built from kernels that communicate only through point-to-point streams. The stream compiler maps a portable stream program onto the target, automatically sizing communications buffers and applying optimizing transformations such as blocking, task fission and task fusion.

This paper presents the Abstract Streaming Machine (ASM), the machine description and performance model used by the ACOTES stream compiler. We explain how the parameters of the ASM and the ASM coarse-grain simulator are used by the partitioning and queue length assignment phases of the ACOTES compiler. Our experiments on the Cell Broadband Engine show that the predictions from the ASM have a maximum relative error of 15% across our benchmarks.

This article is an extended version of a paper presented at SAMOS 2009 [1].

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 39.99
Price excludes VAT (USA)
  • Available as EPUB and PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 54.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

Notes

  1. 1.

    Advanced Compiler Technologies for Embedded Streaming.

References

  1. Carpenter, P.M., Ramirez, A., Ayguade, E.: The abstract streaming machine: compile-time performance modelling of stream programs on heterogeneous multiprocessors. In: Bertels, K., Dimopoulos, N., Silvano, C., Wong, S. (eds.) SAMOS 2009. LNCS, vol. 5657, pp. 12–23. Springer, Heidelberg (2009). https://doi.org/10.1007/978-3-642-03138-0_3

    Chapter  Google Scholar 

  2. Olukotun, K., Hammond, L.: The future of microprocessors. Queue 3(7), 26–29 (2005)

    Article  Google Scholar 

  3. Amdahl, G.: Validity of the single processor approach to achieving large scale computing capabilities. In: Proceedings of the 18–20 April 1967, Spring Joint Computer Conference, pp. 483–485. ACM, New York (1967)

    Google Scholar 

  4. Kumar, R., Tullsen, D., Jouppi, N., Ranganathan, P.: Heterogeneous chip multiprocessors. Computer 38(11), 32–38 (2005)

    Article  Google Scholar 

  5. Chaoui, J., et al.: OMAP: enabling multimedia applications in third generation (3G) wireless terminals. SWPA001 (2000)

    Google Scholar 

  6. Hirata, K., Goodacre, J.: ARM MPCore; the streamlined and scalable ARM11 processor core. In: ASP-DAC 2007: Proceedings of the 2007 Asia and South Pacific Design Automation Conference, pp. 747–748. IEEE Computer Society, Washington, DC (2007)

    Google Scholar 

  7. Intel: IXP2850 Network Processor: Hardware Reference Manual (2004)

    Google Scholar 

  8. Dutta, S., Jensen, R., Rieckmann, A.: Viper: a multiprocessor SOC for advanced set-top box and digital TV systems. In: IEEE Design & Test of Computers, pp. 21–31 (2001)

    Google Scholar 

  9. Artieri, A., Alto, V., Chesson, R., Hopkins, M., Rossi, M.: Nomadik open multimedia platform for next-generation mobile devices. STMicroelectronics Technical Article TA305 (2003)

    Google Scholar 

  10. ClearSpeed: CSX Processor Architecture (2005). http://www.clearspeed.com/docs/resources/ClearSpeed_Architecture_Whitepaper_Feb07v2.pdf

  11. Chen, T., Raghavan, R., Dale, J., Iwata, E.: Cell Broadband Engine Architecture and its first implementation. IBM developerWorks (2005)

    Google Scholar 

  12. Asanovic, K., et al.: The landscape of parallel computing research: a view from Berkeley. Technical report UCB/EECS-2006-183, University of California, Berkeley (2006)

    Google Scholar 

  13. ACOTES IST-034869: Advanced Compiler Technologies for Embedded Streaming. http://www.hitech-projects.com/euprojects/ACOTES/

  14. Munk, H., et al.: ACOTES project: advanced compiler technologies for embedded streaming. Int. J. Parallel Program. 1–54 (2010). https://doi.org/10.1007/s10766-010-0132-7

    Article  Google Scholar 

  15. Carpenter, P., Rodenas, D., Martorell, X., Ramirez, 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). https://doi.org/10.1007/978-3-540-73625-7_13

    Chapter  Google Scholar 

  16. ACOTES: IST ACOTES Project Deliverable D2.2 Report on Streaming Programming Model and Abstract Streaming Machine Description Final Version (2008)

    Google Scholar 

  17. Balart, J., Duran, A., Gonzalez, M., Martorell, X., Ayguade, E., Labarta, J.: Nanos Mercurium: a research compiler for OpenMP. In: Proceedings of the European Workshop on OpenMP, vol. 2004 (2004)

    Google Scholar 

  18. Carpenter, P.M., Ramirez, A., Ayguadé, E.: Buffer sizing for self-timed stream programs on heterogeneous distributed memory multiprocessors. In: Patt, Y.N., Foglia, P., Duesterwald, E., Faraboschi, P., Martorell, X. (eds.) HiPEAC 2010. LNCS, vol. 5952, pp. 96–110. Springer, Heidelberg (2010). https://doi.org/10.1007/978-3-642-11515-8_9

    Chapter  Google Scholar 

  19. Carpenter, P.M., Ramirez, A., Ayguade, E.: Mapping stream programs onto heterogeneous multiprocessor systems. In: CASES 2009, pp. 57–66 (2009)

    Google Scholar 

  20. Fursin, G., Cohen, A.: Building a practical iterative interactive compiler. In: 1st Workshop on Statistical and Machine Learning Approaches Applied to Architectures and Compilation (SMART 2007) (2007)

    Google Scholar 

  21. Stephens, R.: A survey of stream processing. Acta Informatica 34(7), 491–541 (1997)

    Article  MathSciNet  Google Scholar 

  22. Kahn, G.: The semantics of a simple language for parallel processing. Inf. Process. 74, 471–475 (1974)

    Google Scholar 

  23. van der Wolf, P., de Kock, E., Henriksson, T., Kruijtzer, W., Essink, G.: Design and programming of embedded multiprocessors: an interface-centric approach. In: Proceedings of the 2nd IEEE/ACM/IFIP International Conference on Hardware/Software Codesign and System Synthesis, pp. 206–217 (2004)

    Google Scholar 

  24. Girona, S., Labarta, J., Badia, R.M.: Validation of dimemas communication model for MPI collective operations. In: Dongarra, J., Kacsuk, P., Podhorszki, N. (eds.) EuroPVM/MPI 2000. LNCS, vol. 1908, pp. 39–46. Springer, Heidelberg (2000). https://doi.org/10.1007/3-540-45255-9_9

    Chapter  Google Scholar 

  25. CEPBA: PARAVER Performance Visualization and Analysis Tool. http://www.cepba.upc.edu/paraver/

  26. GNU Radio. http://www.gnu.org/software/gnuradio/

  27. Thies, W., Karczmarek, M., Amarasinghe, S.: StreamIt: a language for streaming applications. In: Horspool, R.N. (ed.) CC 2002. LNCS, vol. 2304, pp. 179–196. Springer, Heidelberg (2002). https://doi.org/10.1007/3-540-45937-5_14

    Chapter  Google Scholar 

  28. Lee, E., Messerschmitt, D.: Synchronous data flow. Proc. IEEE 75(9), 1235–1245 (1987)

    Article  Google Scholar 

  29. Gummaraju, J., Rosenblum, M.: Stream programming on general-purpose processors. In: Proceedings of MICRO 38, Barcelona, Spain, November 2005

    Google Scholar 

  30. Fauth, A., Van Praet, J., Freericks, M.: Describing instruction set processors using nML. In: Proceedings of the 1995 European Conference on Design and Test, 503 (1995)

    Google Scholar 

  31. Halambi, A., Grun, P., Ganesh, V., Khare, A., Dutt, N., Nicolau, A.: EXPRESSION: a language for architecture exploration through compiler/simulator retargetability. In: Proceedings of the Conference on Design, Automation and Test in Europe (1999)

    Google Scholar 

  32. Ramsey, N., Davidson, J., Fernandez, M.: Design principles for machine-description languages (1998). http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.128.204

  33. Labonte, F., Mattson, P., Thies, W., Buck, I., Kozyrakis, C., Horowitz, M.: The stream virtual machine. In: Proceedings of PACT, pp. 267–277 (2004)

    Google Scholar 

  34. Mattson, P., Thies, W., Hammond, L., Vahey, M.: Streaming virtual machine specification 1.0. Technical report (2004). http://www.morphware.org

  35. Mattson, P.: PCA Machine Model, 1.0. Technical report (2004)

    Google Scholar 

  36. Kienhuis, B.: Design Space Exploration of Stream-based Dataflow Architectures: Methods and Tools. Delft University of Technology, The Netherlands (1999)

    Google Scholar 

  37. Gordon, M., Thies, W., Amarasinghe, S.: Exploiting coarse-grained task, data, and pipeline parallelism in stream programs. In: Proceedings of ASPLOS 2006, pp. 151–162 (2006)

    Google Scholar 

  38. Lundgren, W., Barnes, K., Steed, J.: Gedae: auto coding to a virtual machine. In: Proceedings of HPEC (2004)

    Google Scholar 

  39. Kupriyanov, A., Hannig, F., Kissler, D., Teich, J., Schaffer, R., Merker, R.: An architecture description language for massively parallel processor architectures. In: Proceedings 9th ITG/GMM/GI Workshop, Methoden und Beschreibungssprachen zur Modellierung und Verifikation von Schaltungen und Systemen (2006)

    Google Scholar 

Download references

Acknowledgements

The researchers at BSC-UPC were supported by the Spanish Ministry of Science and Innovation (contract no. TIN2007-60625), the European Commission in the context of the ACOTES project (contract no. IST-34869) and the HiPEAC Network of Excellence (contract no. IST-004408). We would also like to acknowledge our partners in the ACOTES project for the insightful discussions on the topics presented in this paper.

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Paul M. Carpenter .

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2019 Springer-Verlag GmbH Germany, part of Springer Nature

About this chapter

Check for updates. Verify currency and authenticity via CrossMark

Cite this chapter

Carpenter, P.M., Ramirez, A., Ayguade, E. (2019). The Abstract Streaming Machine: Compile-Time Performance Modelling of Stream Programs on Heterogeneous Multiprocessors. In: Silvano, C., Bertels, K., Schulte, M. (eds) Transactions on High-Performance Embedded Architectures and Compilers V. Lecture Notes in Computer Science(), vol 11225. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-662-58834-5_5

Download citation

  • DOI: https://doi.org/10.1007/978-3-662-58834-5_5

  • Published:

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-662-58833-8

  • Online ISBN: 978-3-662-58834-5

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics