Abstract
In this paper, we describe our experience in writing parallel numerical algorithms using Hierarchically Tiled Arrays (HTAs). HTAs are classes of objects that encapsulate parallelism. HTAs allow the construction of single-threaded parallel programs where a master process distributes tasks to be executed by a collection of servers holding the components (tiles) of the HTAs.
The tiled and recursive nature of HTAs facilitates the development of algorithms with a high degree of parallelism as well as locality. We have implemented HTAs as a MATLABTM toolbox, overloading conventional operators and array functions such that HTA operations appear to the programmer as extensions of MATLABTM. We have successfully used it to write some widely used parallel numerical programs. The resulting programs are easier to understand and maintain than their MPI counterparts.
This work was supported in part by the National Science Foundation under grants CCR 01-21401 ITR and 03-25687 ITR/NGS; by DARPA under contract NBCH30390004; and by gifts from INTEL and IBM. It has also been supported in part by the Ministry of Science and Technology of Spain under contract TIC2001-3694-C02-02, and by the Xunta de Galicia under contract PGIDIT03-TIC10502PR. This work is not necessarily representative of the positions or policies of the Army or Government.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
Similar content being viewed by others
References
Nas Parallel Benchmarks. Website, http://www.nas.nasa.gov/Software/NPB/
High performance fortran forum. High Performance Fortran Specification Version 2.0 (January 1997)
Almasi, G., De Rose, L., Fraguela, B.B., Moreira, J., Padua, D.: Programming for locality and parallelism with hierarchically tiled arrays. In: Rauchwerger, L. (ed.) LCPC 2003. LNCS, vol. 2958. Springer, Heidelberg (2004)
Cannon, L.E.: A cellular computer to implement the Kalman Filter Algorithm. PhD thesis, Montana State University (1969)
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)
Chamberlin, B.L., Choi, S., Lewis, E.C., Lin, C., Synder, L., Weathersby, W.D.: The case for high level parallel programming in ZPL. IEEE Computational Science and Engineering 5(3), 76–86 (1998)
Geist, A., Beguelin, A., Dongarra, J., Jiang, W., Manchek, R., Sunderam, V.S.: PVM: Parallel Virtual Machine: A Users’ Guide and Tutorial for Networked Parallel Computing. MIT Press, Cambridge (1994)
Gropp, W., Lusk, E., Skjellum, A.: Using MPI (2nd ed.): Portable Parallel Programming with the Message-Passing Interface. MIT Press, Cambridge (1999)
Hiranandani, S., Kennedy, K., Tseng, C.-W.: Compiling fortran d for mimd distributed-memory machines. Commun. ACM 35(8), 66–80 (1992)
Koelbel, C., Mehrotra, P.: An overview of high performance fortran. SIGPLAN Fortran Forum 11(4), 9–16 (1992)
Numrich, R.W., Reid, J.: Co-array fortran for parallel programming. SIGPLAN Fortran Forum 17(2), 1–31 (1998)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2005 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Bikshandi, G. et al. (2005). Implementation of Parallel Numerical Algorithms Using Hierarchically Tiled Arrays. In: Eigenmann, R., Li, Z., Midkiff, S.P. (eds) Languages and Compilers for High Performance Computing. LCPC 2004. Lecture Notes in Computer Science, vol 3602. Springer, Berlin, Heidelberg. https://doi.org/10.1007/11532378_8
Download citation
DOI: https://doi.org/10.1007/11532378_8
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-28009-5
Online ISBN: 978-3-540-31813-2
eBook Packages: Computer ScienceComputer Science (R0)