Abstract
Modern computer systems feature multiple homogeneous or heterogeneous computing units with deep memory hierarchies, and expect a high degree of thread-level parallelism from the software. Exploitation of data locality is critical to achieving scalable parallelism, but adds a significant dimension of complexity to performance optimization of parallel programs. This is especially true for programming models where locality is implicit and opaque to programmers. In this paper, we introduce the hierarchical place tree (HPT) model as a portable abstraction for task parallelism and data movement. The HPT model supports co-allocation of data and computation at multiple levels of a memory hierarchy. It can be viewed as a generalization of concepts from the Sequoia and X10 programming models, resulting in capabilities that are not supported by either. Compared to Sequoia, HPT supports three kinds of data movement in a memory hierarchy rather than just explicit data transfer between adjacent levels, as well as dynamic task scheduling rather than static task assignment. Compared to X10, HPT provides a hierarchical notion of places for both computation and data mapping. We describe our work-in-progress on implementing the HPT model in the Habanero-Java (HJ) compiler and runtime system. Preliminary results on general-purpose multicore processors and GPU accelerators indicate that the HPT model can be a promising portable abstraction for future multicore processors.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
References
Chapel Programming Language, http://chapel.cray.com/
Alpern, B., et al.: Modeling parallel computers as memory hierarchies. In: Proc. Programming Models for Massively Parallel Computers, pp. 116–123. IEEE Computer Society Press, Los Alamitos (1993)
Bailey, D.H., et al.: Nas parallel benchmark results. In: Proceedings of SC 1992, pp. 386–393. IEEE Computer Society Press, Los Alamitos (1992)
Bikshandi, G., et al.: Programming for parallelism and locality with hierarchically tiled arrays. In: Proceedings of PPoPP 2006, New York, NY, USA, pp. 48–57 (2006)
Fatahalian, K., et al.: Sequoia: Programming the memory hierarchy. In: Proceedings of the SC 2006 (2006)
Smith, L.A., et al.: A Parallel Java Grande Benchmark Suite. In: SC 2001, p. 8. ACM, New York (2001)
Charles, P., et al.: X10: An object-oriented approach to non-uniform cluster computing. In: OOPSLA 2005 Onward! Track (2005)
Chandra, R., et al.: Cool: An object-based language for parallel programming. Computer 27(8), 13–26 (1994)
Chandra, S., et al.: Type inference for locality analysis of distributed data structures. In: PPoPP 2008, pp. 11–22. ACM, New York (2008)
Tian, X.-M., et al.: Quantitive studies of data-locality sensitivity on the EARTH multithreaded architecture: preliminary results. In: International Conference on High-Performance Computing (1996)
Yan, Y., et al.: JCUDA: a Programmer-Friendly Interface for Accelerating Java Programs with CUDA. In: Sips, H., Epema, D., Lin, H.-X. (eds.) Euro-Par 2009 Parallel Processing. LNCS, vol. 5704, pp. 887–899. Springer, Heidelberg (2009)
Habanero Java (HJ) Project, http://habanero.rice.edu/hj
Joyner, M.: Array Optimizations for High Productivity Programming Languages. PhD thesis, Houston, TX, USA (2008)
Sun Microsystems. Fortress Programming Language, http://projectfortress.sun.com
NVIDIA. CUDA Programming Guide 2.2 (2009), http://www.nvidia.com/cuda
The Portland Group. PGI Fortran & C Accelerator Compilers and Programming Model. Technical report (November 2008)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2010 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Yan, Y., Zhao, J., Guo, Y., Sarkar, V. (2010). Hierarchical Place Trees: A Portable Abstraction for Task Parallelism and Data Movement. In: Gao, G.R., Pollock, L.L., Cavazos, J., Li, X. (eds) Languages and Compilers for Parallel Computing. LCPC 2009. Lecture Notes in Computer Science, vol 5898. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-642-13374-9_12
Download citation
DOI: https://doi.org/10.1007/978-3-642-13374-9_12
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-642-13373-2
Online ISBN: 978-3-642-13374-9
eBook Packages: Computer ScienceComputer Science (R0)