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.
- Ada Reference Manual. http://www.adaic.org/standards/05rm/html/RM-TTL.html, 2005.Google Scholar
- Tilera. http://www.tilera.com/.Google Scholar
- 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 ScholarDigital Library
- J. Aldrich, J. Sunshine, D. Saini, and Z. Sparks. State-oriented programming. In Proceedings of Onward!, 2009.Google Scholar
- 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 Scholar
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- 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 ScholarCross Ref
- 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 ScholarDigital Library
- B. L. Chamberlain, D. Callahan, and H. P. Zima. Parallel programmability and the Chapel language. International Journal of High Performance Computing Applications, 2007. Google ScholarDigital Library
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- 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 Scholar
- B. Demsky and P. Lam. Views: Object-inspired concurrency control. In Proceedings of the 2010 International Conference on Software Engineering, 2010. Google ScholarDigital Library
- B. Demsky and S. Sundaramurthy. Bristlecone: Language support for robust software applications. IEEE Transactions on Software Engineering. Google ScholarDigital Library
- 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 ScholarDigital Library
- D. Gelernter. Generative communication in Linda. ACM Transactions on Programming Languages and Systems, 7(1):80--112, 1985. Google ScholarDigital Library
- 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 ScholarDigital Library
- C. Hewitt and H. G. Baker. Actors and continuous functionals. Technical report, Massachusetts Institute of Technology, 1978. Google ScholarDigital Library
- 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 ScholarDigital Library
- J. C. Jenista and B. Demsky. Disjointness analysis for Java-like languages. Technical Report UCI-ISR-09-1, 2009.Google Scholar
- W. M. Johnston, J. R. P. Hanna, and R. J. Millar. Advances in dataflow programming languages. ACM Computing Surveys, 36(1), 2004. Google ScholarDigital Library
- 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 ScholarDigital Library
- H. J. Larson and B. O. Shubert. Probabilistic Models in Engineering Sciences. Wiley, 1979.Google Scholar
- 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 ScholarCross Ref
- M. C. Rinard. The Design, Implementation and Evaluation of Jade, a Portable, Implicitly Parallel Programming Language. PhD thesis, Stanford University, September 1994. Google ScholarDigital Library
- L. A. Smith, J. M. Bull, and J. Obdrzalek. A parallel Java Grande benchmark suite. In Proceedings of SC2001, 2001. Google ScholarDigital Library
- 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 ScholarDigital Library
- R. E. Strom and S. Yemini. Typestate: A programming language concept for enhancing software reliability. IEEE Transactions on Software Engineering, January 1986. Google ScholarDigital Library
- 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 ScholarDigital Library
Index Terms
- Bamboo: a data-centric, object-oriented approach to many-core software
Recommendations
Bamboo: a data-centric, object-oriented approach to many-core software
PLDI '10Traditional 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 ...
A Performance Optimization Framework for the Simultaneous Heterogeneous Computing Platforms
SEM4HPC '16: Proceedings of the ACM Workshop on Software Engineering Methods for Parallel and High Performance ApplicationsHeterogeneous computing platforms with multicore host system and many-core accelerator devices have taken a major step forward in the mainstream HPC computing market this year with the announcement of HP Apollo 6000 System's ProLiant XL250a server ...
Toward performance portability of the Albany finite element analysis code using the Kokkos library
Performance portability on heterogeneous high-performance computing (HPC) systems is a major challenge faced today by code developers: parallel code needs to be executed correctly as well as with high performance on machines with different architectures, ...
Comments