Skip to main content

Design for Interoperability in stapl: pMatrices and Linear Algebra Algorithms

  • Conference paper
Book cover Languages and Compilers for Parallel Computing (LCPC 2008)

Abstract

The Standard Template Adaptive Parallel Library (stapl) is a high-productivity parallel programming framework that extends C++ and stl with unified support for shared and distributed memory parallelism. stapl provides distributed data structures (pContainers) and parallel algorithms (pAlgorithms) and a generic methodology for extending them to provide customized functionality. To improve productivity and performance, it is essential for stapl to exploit third party libraries, including those developed in programming languages other than C++. In this paper we describe a methodology that enables third party libraries to be used with stapl. This methodology allows a developer to specify when these specialized libraries can correctly be used, and provides mechanisms to transparently invoke them when appropriate. It also provides support for using stapl pAlgorithms and pContainers in external codes. As a concrete example, we illustrate how third party libraries, namely BLAS and PBLAS, can be transparently embedded into stapl to provide efficient linear algebra algorithms for the stapl pMatrix, with negligible slowdown with respect to the optimized libraries themselves.

This research supported in part by NSF Grants EIA-0103742, ACR-0081510, ACR-0113971, CCR-0113974, EIA-9810937, ACI-0326350, CRI-0551685, CNS-0615267, CCF 0702765, by the DOE and Intel. This research used resources of the National Energy Research Scientific Computing Center, which is supported by the Office of Science of the U.S. Department of Energy under Contract No. DE-AC02-05CH11231. Buss is supported in part by Colciencias/LASPAU (Fulbright) Fellowship.

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. An, P., Jula, A., Rus, S., Saunders, S., Smith, T., Tanase, G., Thomas, N., Amato, N., Rauchwerger, L.: STAPL: A standard template adaptive parallel C++ library. In: Proc. of the International Workshop on Advanced Compiler Technology for High Performance and Embedded Processors (IWACT), Bucharest, Romania (2001)

    Google Scholar 

  2. Anderson, E., Bai, Z., Bischof, C., Blackford, S., Demmel, J., Dongarra, J., Du Croz, J., Greenbaum, A., Hammarling, S., McKenney, A., Sorensen, D.: LAPACK Users’ Guide. Society for Industrial and Applied Mathematics, 3rd edn. Philadelphia, PA (1999)

    Google Scholar 

  3. Breuer, A., Gottschling, P., Gregor, D., Lumsdaine, A.: Effecting parallel graph eigensolvers through library composition. In: 20th International Parallel and Distributed Processing Symposium, 2006. IPDPS 2006, p. 8 (March 2006)

    Google Scholar 

  4. Buss, A.A., Smith, T.G., Tanase, G., Thomas, N.L., Olson, L., Fidel, A., Bianco, M., Amato, N.M., Rauchwerger, L.: Design for interoperability in STAPL: pMatrices and linear algebra algorithms. Technical Report TR08-003, Dept. of Computer Science, Texas A&M University (August. 2008)

    Google Scholar 

  5. Choi, J., Dongarra, J.J., Ostrouchov, L.S., Petitet, A.P., Walker, D.W., Whaley, R.C.: Design and implementation of the ScaLAPACK LU, QR, and Cholesky factorization routines. Scientific Programming 5(3), 173–184 (Fall, 1996)

    Article  Google Scholar 

  6. Demmel, J., Dongarra, J., Parlett, B.N., Kahan, W., Gu, M., Bindel, D., Hida, Y., Li, X.S., Marques, O., Riedy, E.J., Vömel, C., Langou, J., Luszczek, P., Kurzak, J., Buttari, A., Langou, J., Tomov, S.: Prospectus for the next lapack and scalapack libraries. In: PARA, pp. 11–23 (2006)

    Google Scholar 

  7. Edjlali, G., Sussman, A., Saltz, J.: Interoperability of data parallel runtime libraries with meta-chaos. Technical Report CS-TR-3633, University of Maryland (1996)

    Google Scholar 

  8. Gottschling, P., Wise, D.S., Adams, M.D.: Representation-transparent matrix algorithms with scalable performance. In: ICS 2007: Proceedings of the 21st annual international conference on Supercomputing, pp. 116–125. ACM, New York (2007)

    Chapter  Google Scholar 

  9. Gregor, D., Stroustrup, B., Widman, J., Siek, J.: Proposed wording for concepts. technical report n2617=08-0127. ISO/IEC JTC 1, Information Technology Subcommittee SC 22, Programming Language C++ (2008)

    Google Scholar 

  10. Järvi, J., Marcus, M., Smith, J.: Library composition and adaptation using c++ concepts. In: GPCE 2007: Proceedings of the 6th international conference on Generative programming and component engineering (October 2007)

    Google Scholar 

  11. Järvi, J., Willcock, J., Hinnant, J., Lumsdaine, A.: Function overloading based on arbitrary properties of types. C/C++ Users Journal 21, 25–32 (2003)

    Google Scholar 

  12. Karypis, G., Schloegel, K., Kumar, V.: ParMeTis: Parallel Graph Partitioning and Sparse Matrix Ordering Library, Version 2.0. University of Minnesota, Dept. of Computer Science (September 1999)

    Google Scholar 

  13. Lawson, C.L., Hanson, R.J., Kincaid, D.R., Krogh, F.T.: Basic linear algebra subprograms for fortran usage. ACM Trans. Math. Softw. 5(3), 308–323 (1979)

    Article  MATH  Google Scholar 

  14. Musser, D., Derge, G., Saini, A.: STL Tutorial and Reference Guide, 2nd edn. Addison-Wesley, Reading (2001)

    Google Scholar 

  15. Tanase, G., Bianco, M., Amato, N.M., Rauchwerger, L.: The STAPL pArray. In: Proceedings of the 2007 Workshop on Memory Performance (MEDEA), Brasov, Romania, pp. 73–80 (2007)

    Google Scholar 

  16. Tanase, G., Raman, C., Bianco, M., Amato, N.M., Rauchwerger, L.: Associative parallel containers in STAPL. In: Adve, V., Garzarán, M.J., Petersen, P. (eds.) LCPC 2007. LNCS, vol. 5234, pp. 156–171. Springer, Heidelberg (2008)

    Chapter  Google Scholar 

  17. Thomas, N., Saunders, S., Smith, T., Tanase, G., Rauchwerger, L.: ARMI: A high level communication library for STAPL. Parallel Processing Letters 16(2), 261–280 (2006)

    Article  MathSciNet  Google Scholar 

  18. Thomas, N., Tanase, G., Tkachyshyn, O., Perdue, J., Amato, N.M., Rauchwerger, L.: A framework for adaptive algorithm selection in STAPL. In: Proceedings of the Tenth ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming (PPoPP), Chicago, IL, USA, pp. 277–288. ACM, New York (2005)

    Google Scholar 

  19. Veldhuizen, T.L.: Arrays in blitz++. In: Caromel, D., Oldehoeft, R.R., Tholburn, M. (eds.) ISCOPE 1998. LNCS, vol. 1505, pp. 223–230. Springer, Heidelberg (1998)

    Chapter  Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2008 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Buss, A.A. et al. (2008). Design for Interoperability in stapl: pMatrices and Linear Algebra Algorithms. In: Amaral, J.N. (eds) Languages and Compilers for Parallel Computing. LCPC 2008. Lecture Notes in Computer Science, vol 5335. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-540-89740-8_21

Download citation

  • DOI: https://doi.org/10.1007/978-3-540-89740-8_21

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-89739-2

  • Online ISBN: 978-3-540-89740-8

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics