Skip to main content

Design and Use of htalib – A Library for Hierarchically Tiled Arrays

  • Conference paper

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

Abstract

Hierarchically Tiled Arrays (HTAs) are data structures that facilitate locality and parallelism of array intensive computations with block-recursive nature. The model underlying HTAs provides programmers with a global view of distributed data as well as a single-threaded view of the execution. In this paper we present htalib, a C++ implementation of HTAs. This library provides several novel constructs: (i) A map-reduce operator framework that facilitates the implementation of distributed operations with HTAs. (ii) Overlapped tiling in support of tiling in stencil codes. (iii) Data layering, facilitating the use of HTAs in adaptive mesh refinement applications. We describe the interface and design of htalib and our experience with the new programming constructs.

This work was supported by the National Science Foundation under the NGS program (Grant No. 0103610) and under the CSR-AES program (Grant No. 0509432). Basilio Fraguela was partially supported by the Ministry of Education and Science of Spain, FEDER funds of the European Union (Project TIN2004-07797-C02-02), and by the Galician Government (Project PGIDIT03-TIC10502PR). This work was also supported by the Defense Advanced Research Projects Agency (Contract NBCH30390004).

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

Buying options

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

Learn about institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. NAS Parallel Benchmarks. Website. http://www.nas.nasa.gov/Software/NPB/

  2. High Performance Fortran Forum. HPF Specification Version 2.0 (January 1997)

    Google Scholar 

  3. Adams, J.C., et al.: Fortran 90 Handbook. McGraw-Hill, New York (1992)

    Google Scholar 

  4. Almási, G., et al.: Programming for Locality and Parallelism with Hierarchically Tiled Arrays. In: Rauchwerger, L. (ed.) LCPC 2003. LNCS, vol. 2958, pp. 162–176. Springer, Heidelberg (2004)

    Google Scholar 

  5. An, P., et al.: STAPL: An Adaptive, Generic Parallel Programming Library for C++. In: Proc. of LCPC, August, pp. 193–208 (2001)

    Google Scholar 

  6. Berger, M.J., Colella, P.: Local adaptive mesh refinement for shock hydrodynamics. Journal of Computational Physics 82(1), 64–84 (1989)

    Article  MATH  Google Scholar 

  7. Bikshandi, G., et al.: Programming for parallelism and locality with hierarchically tiled arrays. In: Proc. of the ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming (PPoPP’06), pp. 48–57. ACM Press, New York (2006)

    Google Scholar 

  8. Carlson, W., Draper, J., Culler, D., Yelick, K., Brooks, E., Warren, K.: Introduction to UPC and Language Specification. Technical Report CCS-TR-99-157, IDA Center for Computing Sciences (1999)

    Google Scholar 

  9. Chamberlain, B.L., et al.: The Case for High Level Parallel Programming in ZPL. IEEE Computational Science and Engineering 5(3), 76–86 (1998)

    Article  Google Scholar 

  10. Collins, T., Browne, J.C.: Matrix+ + : An object-oriented environment for parallel high-performance matrix computations. In: Proc. of the 28th Annual Hawaii Intl. Conf. on System Sciences (HICSS), p. 202 (1995)

    Google Scholar 

  11. Culler, D.E., et al.: Parallel programming in split-c. In: Conference on Supercomputing (SC), pp. 262–273 (1993)

    Google Scholar 

  12. Dean, J., Ghemawat, S.: Mapreduce: Simplified data processing on large clusters. In: Symposium on Operating System Design and Implementation (OSDI) (2004)

    Google Scholar 

  13. Fatahalian, K., et al.: Programming the memory hierarchy. To appear in Proc. of Supercomputing 2006, Nov. (2006)

    Google Scholar 

  14. Gropp, W., Lusk, E., Skjellum, A.: Using MPI: Portable Parallel Programming with the Message-Passing Interface”, 2nd edn. MIT Press, Cambridge (1999)

    Google Scholar 

  15. Han, H., Rivera, G., Tseng, C.: Software support for improving locality in scientific codes. In: Proc. of the Eighth International Workshop on Compilers for Parallel Computers (CPC’2000), Aussois, France, Jan. (2000)

    Google Scholar 

  16. Numrich, R.W., Reid, J.: Co-array Fortran for Parallel Programming. SIGPLAN Fortran Forum 17(2), 1–31 (1998)

    Article  Google Scholar 

  17. Wen, T., Colella, P.: Adaptive mesh refinement in Titanium. IPDPS (2005)

    Google Scholar 

  18. Wolf, M.E., Lam, M.S.: A data locality optimizing algorithm. In: PLDI, Toronto, Ontario, Canada, pp. 30–44 (1991), doi:10.1145/113445.113449

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

George Almási Călin Caşcaval Peng Wu

Rights and permissions

Reprints and permissions

Copyright information

© 2007 Springer Berlin Heidelberg

About this paper

Cite this paper

Bikshandi, G. et al. (2007). Design and Use of htalib – A Library for Hierarchically Tiled Arrays. In: Almási, G., Caşcaval, C., Wu, P. (eds) Languages and Compilers for Parallel Computing. LCPC 2006. Lecture Notes in Computer Science, vol 4382. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-540-72521-3_3

Download citation

  • DOI: https://doi.org/10.1007/978-3-540-72521-3_3

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-72520-6

  • Online ISBN: 978-3-540-72521-3

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics