skip to main content
10.1145/1806596.1806640acmconferencesArticle/Chapter ViewAbstractPublication PagespldiConference Proceedingsconference-collections
research-article

Bamboo: a data-centric, object-oriented approach to many-core software

Authors Info & Claims
Published:05 June 2010Publication History

ABSTRACT

Traditional data-oriented programming languages such as dataflow languages and stream languages provide a natural abstraction for parallel programming. In these languages, a developer focuses on the flow of data through the computation and these systems free the developer from the complexities of low-level, thread-oriented concurrency primitives. This simplification comes at a cost --- traditional data-oriented approaches restrict the mutation of state and, in practice, the types of data structures a program can effectively use. Bamboo borrows from work in typestate and software transactions to relax the traditional restrictions of data-oriented programming models to support mutation of arbitrary data structures.

We have implemented a compiler for Bamboo which generates code for the TILEPro64 many-core processor. We have evaluated this implementation on six benchmarks: Tracking, a feature tracking algorithm from computer vision; KMeans, a K-means clustering algorithm; MonteCarlo, a Monte Carlo simulation; FilterBank, a multi-channel filter bank; Fractal, a Mandelbrot set computation; and Series, a Fourier series computation. We found that our compiler generated implementations that obtained speedups ranging from 26.2x to 61.6x when executed on 62 cores.

References

  1. Ada Reference Manual. http://www.adaic.org/standards/05rm/html/RM-TTL.html, 2005.Google ScholarGoogle Scholar
  2. Tilera. http://www.tilera.com/.Google ScholarGoogle Scholar
  3. G. Agha, I. A. Mason, S. F. Smith, and C. L. Talcott. A foundation for actor computation. Journal of Functional Programming, 7(1):1--72,1997. Google ScholarGoogle ScholarDigital LibraryDigital Library
  4. J. Aldrich, J. Sunshine, D. Saini, and Z. Sparks. State-oriented programming. In Proceedings of Onward!, 2009.Google ScholarGoogle Scholar
  5. E. Allen, D. Chase, J. Hallett, V. Luchangco, J.-W. Messen, S. Ryu, G. L. Steele, and S. Tobin-Hochstadt. The Fortress Language Specification. Sun Microsystems, Inc., September 2006.Google ScholarGoogle Scholar
  6. S. P. Amarasinghe, J.-A. M. Anderson, M. S. Lam, and A. W. Lim. An overview of a compiler for scalable parallel machines. In Proceedings of the 6th International Workshop on Languages and Compilers for Parallel Computing, 1994. Google ScholarGoogle ScholarDigital LibraryDigital Library
  7. P. Bellens, J. M. Perez, R. M. Badia, and J. Labarta. CellSs: A programming model for the Cell BE architecture. In Proceedings of the ACM/IEEE SC 2006 Conference on Supercomputing, 2006. Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. G. E. Blelloch, S. Chatterjee, J. C. Hardwick, J. Sipelstein, and M. Zagha. Implementation of a portable nested data-parallel language. Journal of Parallel and Distributed Computing, 21(1):4--14, Apr. 1994. Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. C. Cao Minh, J. Chung, C. Kozyrakis, and K. Olukotun. STAMP: Stanford transactional applications for multi-processing. In Proceedings of the IEEE International Symposium on Workload Characterization, September 2008.Google ScholarGoogle ScholarCross RefCross Ref
  10. B. L. Chamberlain, S.-E. Choi, E. C. Lewis, C. Lin, L. Snyder, and W. D. Weathersby. The case for high level parallel programming in ZPL. IEEE Computational Science and Engineering, pages 76--86,July--September 1998. Google ScholarGoogle ScholarDigital LibraryDigital Library
  11. B. L. Chamberlain, D. Callahan, and H. P. Zima. Parallel programmability and the Chapel language. International Journal of High Performance Computing Applications, 2007. Google ScholarGoogle ScholarDigital LibraryDigital Library
  12. P. Charles, C. Grothoff, V. Saraswat, C. Donawa, A. Kielstra, K. Ebcioglu, C. von Praun, and V. Sarkar. X10: an object-oriented approach to non-uniform cluster computing. In Proceedings of the ACM SIGPLAN Conference on Object Oriented Programming, Systems, Languages, and Applications, 2005. Google ScholarGoogle ScholarDigital LibraryDigital Library
  13. W. R. Cook, S. Patwardhan, and J. Misra. Workflow patterns in Orc. In Proceedings of the 2006 International Conference on Coordination Models and Languages, 2006. Google ScholarGoogle ScholarDigital LibraryDigital Library
  14. K. Dai. Code parallelization for the LGDG large-grain dataflow computation. In CONPAR 90/VAPP IV: Proceedings of the Joint International Conference on Vector and Parallel Processing, pages243--252, London, UK, 1990. Springer-Verlag. Google ScholarGoogle ScholarDigital LibraryDigital Library
  15. F. Damiani, E. Giachino, P. Giannini, N. Cameron, and S. Drossopoulou. A state abstraction for coordination in Java-like languages. In Electronic Proceedings of the 2006 Workshop on Formal Techniques for Java-like Programs, 2006.Google ScholarGoogle Scholar
  16. B. Demsky and P. Lam. Views: Object-inspired concurrency control. In Proceedings of the 2010 International Conference on Software Engineering, 2010. Google ScholarGoogle ScholarDigital LibraryDigital Library
  17. B. Demsky and S. Sundaramurthy. Bristlecone: Language support for robust software applications. IEEE Transactions on Software Engineering. Google ScholarGoogle ScholarDigital LibraryDigital Library
  18. M. Frigo, C. Leiserson, and K. Randall. The implementation of the Cilk-5 multithreaded language. In International Conference on Programming Language Design and Implementation, 1998. Google ScholarGoogle ScholarDigital LibraryDigital Library
  19. D. Gelernter. Generative communication in Linda. ACM Transactions on Programming Languages and Systems, 7(1):80--112, 1985. Google ScholarGoogle ScholarDigital LibraryDigital Library
  20. M. Gordon, W. Thies, M. Karczmarek, J. Lin, A. S. Meli, C. Leger, A. A. Lamb, J. Wong, H. Hoffman, D. Z. Maze, and S. Amarasinghe. A stream compiler for communication-exposed architectures. In International Conference on Architectural Support for Programming Languages and Operating Systems, October, 2002. Google ScholarGoogle ScholarDigital LibraryDigital Library
  21. C. Hewitt and H. G. Baker. Actors and continuous functionals. Technical report, Massachusetts Institute of Technology, 1978. Google ScholarGoogle ScholarDigital LibraryDigital Library
  22. C. Huang and L. V. Kale. Charisma: orchestrating migratable parallel objects. In Proceedings of the 2007 ACM International Symposium on High Performance Distributed Computing, pages 75--84, 2007. Google ScholarGoogle ScholarDigital LibraryDigital Library
  23. J. C. Jenista and B. Demsky. Disjointness analysis for Java-like languages. Technical Report UCI-ISR-09-1, 2009.Google ScholarGoogle Scholar
  24. W. M. Johnston, J. R. P. Hanna, and R. J. Millar. Advances in dataflow programming languages. ACM Computing Surveys, 36(1), 2004. Google ScholarGoogle ScholarDigital LibraryDigital Library
  25. M. Kudlur and S. Mahlke. Orchestrating the execution of stream programs on multicore platforms. In Proceedings of the Conference on Programming Language Design and Implementation, 2008. Google ScholarGoogle ScholarDigital LibraryDigital Library
  26. H. J. Larson and B. O. Shubert. Probabilistic Models in Engineering Sciences. Wiley, 1979.Google ScholarGoogle Scholar
  27. M. Püschel, J. M. F. Moura, J. Johnson, D. Padua, M. Veloso, B. Singer, J. Xiong, F. Franchetti, A. Gacic, Y. Voronenko, K. Chen, R. W. Johnson, and N. Rizzolo. SPIRAL: Code generation for DSP transforms. Proceedings of the IEEE, special issue on "Program Generation, Optimization, and Adaptation", 93(2):232--275, 2005.Google ScholarGoogle ScholarCross RefCross Ref
  28. M. C. Rinard. The Design, Implementation and Evaluation of Jade, a Portable, Implicitly Parallel Programming Language. PhD thesis, Stanford University, September 1994. Google ScholarGoogle ScholarDigital LibraryDigital Library
  29. L. A. Smith, J. M. Bull, and J. Obdrzalek. A parallel Java Grande benchmark suite. In Proceedings of SC2001, 2001. Google ScholarGoogle ScholarDigital LibraryDigital Library
  30. G. Smolka. The Oz programming model. In Proceedings of the European Workshop on Logics in Artificial Intelligence, page 251, London, UK, 1996. Springer-Verlag. Google ScholarGoogle ScholarDigital LibraryDigital Library
  31. R. E. Strom and S. Yemini. Typestate: A programming language concept for enhancing software reliability. IEEE Transactions on Software Engineering, January 1986. Google ScholarGoogle ScholarDigital LibraryDigital Library
  32. S. K. Venkata, I. Ahn, D. Jeon, A. Gupta, C. Louie, S. Garcia, S. Belongie, and M. B. Taylor. SD-VBS: The San Diego Vision Benchmark Suite. In Proceedings of the IEEE International Symposium on Workload Characterization, October 2009. Google ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. Bamboo: a data-centric, object-oriented approach to many-core software

            Recommendations

            Comments

            Login options

            Check if you have access through your login credentials or your institution to get full access on this article.

            Sign in
            • Published in

              cover image ACM Conferences
              PLDI '10: Proceedings of the 31st ACM SIGPLAN Conference on Programming Language Design and Implementation
              June 2010
              514 pages
              ISBN:9781450300193
              DOI:10.1145/1806596
              • cover image ACM SIGPLAN Notices
                ACM SIGPLAN Notices  Volume 45, Issue 6
                PLDI '10
                June 2010
                496 pages
                ISSN:0362-1340
                EISSN:1558-1160
                DOI:10.1145/1809028
                Issue’s Table of Contents

              Copyright © 2010 ACM

              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]

              Publisher

              Association for Computing Machinery

              New York, NY, United States

              Publication History

              • Published: 5 June 2010

              Permissions

              Request permissions about this article.

              Request Permissions

              Check for updates

              Qualifiers

              • research-article

              Acceptance Rates

              Overall Acceptance Rate406of2,067submissions,20%

              Upcoming Conference

              PLDI '24

            PDF Format

            View or Download as a PDF file.

            PDF

            eReader

            View online with eReader.

            eReader