Skip to main content

Hierarchical Place Trees: A Portable Abstraction for Task Parallelism and Data Movement

  • Conference paper
Languages and Compilers for Parallel Computing (LCPC 2009)

Part of the book series: Lecture Notes in Computer Science ((LNTCS,volume 5898))

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.

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 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

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. Chapel Programming Language, http://chapel.cray.com/

  2. 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)

    Chapter  Google Scholar 

  3. Bailey, D.H., et al.: Nas parallel benchmark results. In: Proceedings of SC 1992, pp. 386–393. IEEE Computer Society Press, Los Alamitos (1992)

    Google Scholar 

  4. 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)

    Google Scholar 

  5. Fatahalian, K., et al.: Sequoia: Programming the memory hierarchy. In: Proceedings of the SC 2006 (2006)

    Google Scholar 

  6. Smith, L.A., et al.: A Parallel Java Grande Benchmark Suite. In: SC 2001, p. 8. ACM, New York (2001)

    Google Scholar 

  7. Charles, P., et al.: X10: An object-oriented approach to non-uniform cluster computing. In: OOPSLA 2005 Onward! Track (2005)

    Google Scholar 

  8. Chandra, R., et al.: Cool: An object-based language for parallel programming. Computer 27(8), 13–26 (1994)

    Article  Google Scholar 

  9. Chandra, S., et al.: Type inference for locality analysis of distributed data structures. In: PPoPP 2008, pp. 11–22. ACM, New York (2008)

    Chapter  Google Scholar 

  10. 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)

    Google Scholar 

  11. 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)

    Chapter  Google Scholar 

  12. Habanero Java (HJ) Project, http://habanero.rice.edu/hj

  13. Joyner, M.: Array Optimizations for High Productivity Programming Languages. PhD thesis, Houston, TX, USA (2008)

    Google Scholar 

  14. Sun Microsystems. Fortress Programming Language, http://projectfortress.sun.com

  15. NVIDIA. CUDA Programming Guide 2.2 (2009), http://www.nvidia.com/cuda

  16. The Portland Group. PGI Fortran & C Accelerator Compilers and Programming Model. Technical report (November 2008)

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints 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)

Publish with us

Policies and ethics