The STAPL pView

  • Antal Buss
  • Adam Fidel
  • Harshvardhan
  • Timmie Smith
  • Gabriel Tanase
  • Nathan Thomas
  • Xiabing Xu
  • Mauro Bianco
  • Nancy M. Amato
  • Lawrence Rauchwerger
Part of the Lecture Notes in Computer Science book series (LNCS, volume 6548)

Abstract

The Standard Template Adaptive Parallel Library (STAPL) is a C++ parallel programming library that provides a collection of distributed data structures (pContainers) and parallel algorithms (pAlgorithms) and a generic methodology for extending them to provide customized functionality. STAPL algorithms are written in terms of pViews, which provide a generic access interface to pContainer data by abstracting common data structure concepts. Briefly, pViews allow the same pContainer to present multiple interfaces, e.g., enabling the same pMatrix to be ‘viewed’ (or used) as a row-major or column-major matrix, or even as a vector. In this paper, we describe the staplpView concept and its properties. pViews generalize the iterator concept and enable parallelism by providing random access to, and an ADT for, collections of elements. We illustrate how pViews provide support for managing the tradeoff between expressivity and performance and examine the performance overhead incurred when using pViews.

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. 1.
    Barbosa, D.M.J., Cretin, J., Foster, N., Greenberg, M., Pierce, B.C.: Matching Lenses: Alignment and View Update. In: Proc. ACM SIGPLAN Int. Conf. on Functional Programming, Baltimore, Maryland (September 2010)Google Scholar
  2. 2.
    Bourdev, L.: Generic Image Library. Software Developer’s Journal, 42–52 (2007)Google Scholar
  3. 3.
    Buss, A., Harshvardhan, Papadopoulos, I., Pearce, O., Smith, T., Tanase, G., Thomas, N., Xu, X., Bianco, M., Amato, N.M., Rauchwerger, L.: STAPL: Standard template adaptive parallel library. In: Proc. Annual Haifa Experimental Systems Conference (SYSTOR), pp. 1–10. ACM, New York (2010)CrossRefGoogle Scholar
  4. 4.
    Buss, A., Smith, T., Tanase, G., Thomas, N., Bianco, M., Amato, N.M., Rauchwerger, L.: Design for interoperability in stapl: pMatrices and linear algebra algorithms. In: Amaral, J.N. (ed.) LCPC 2008. LNCS, vol. 5335, pp. 304–315. Springer, Heidelberg (2008)CrossRefGoogle Scholar
  5. 5.
    Callahan, D., Chamberlain, B.L., Zima, H.P.: The Cascade High Productivity Language. In: The 9th Int. Workshop on High-Level Parallel Programming Models and Supportive Environments, Los Alamitos, vol. 26, pp. 52–60 (2004)Google Scholar
  6. 6.
    Charles, P., Grothoff, C., Saraswat, V., Donawa, C., Kielstra, A., Ebcioglu, K., von Praun, C., Sarkar, V.: X10: an Object-Oriented Approach to Non-Uniform Cluster Computing. In: ACM SIGPLAN Conf. on Object-Oriented Programming, Systems, Languages, and Applications, pp. 519–538. ACM Press, New York (2005)Google Scholar
  7. 7.
    Guo, J., Bikshandi, G., Fraguela, B.B., Padua, D.: Writing Productive Stencil Codes with Overlapped Tiling. Concurr. Comput.: Pract. Exper. 21(1), 25–39 (2009)CrossRefGoogle Scholar
  8. 8.
  9. 9.
    JàJà, J.: An Introduction Parallel Algorithms. Addison-Wesley, Reading (1992)MATHGoogle Scholar
  10. 10.
    Joyner, M., Chamberlain, B.L., Deitz, S.J.: Iterators in Chapel (April 2006)Google Scholar
  11. 11.
    Lumsdaine, A., Gregor, D., Hendrickson, B., Berry, J.W.: Challenges in Parallel Graph Processing. Parallel Processing Letters 17(1), 5–20 (2007)MathSciNetCrossRefGoogle Scholar
  12. 12.
    Musser, D., Derge, G., Saini, A.: STL Tutorial and Reference Guide, 2nd edn. Addison-Wesley, Reading (2001)Google Scholar
  13. 13.
    Ottosen, T.: Range Library Proposal. Technical report, JTC1/SC22/WG21 - The C++ Standards Committee (2005), http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2005/n1871.html
  14. 14.
    Quinn, M.: Parallel Programming in C with MPI and OpenMP. McGraw-Hill, New York (2003)Google Scholar
  15. 15.
    Rauchwerger, L., Arzu, F., Ouchi, K.: Standard Templates Adaptive Parallel Library (STAPL). In: O’Hallaron, D.R. (ed.) LCR 1998. LNCS, vol. 1511, pp. 402–409. Springer, Heidelberg (1998)CrossRefGoogle Scholar
  16. 16.
    Saunders, S., Rauchwerger, L.: ARMI: An Adaptive, Platform Independent Communication Library. In: Proc. ACM SIGPLAN Symp. Prin. Prac. Par. Prog (PPoPP), San Diego, California, USA, pp. 230–241 (2003)Google Scholar
  17. 17.
    Seymour, J.: Views - a C++ Standard Template Library Extension (January 1996), http://www.zeta.org.au/~jon/STL/views/doc/views.html
  18. 18.
    Tanase, G., Buss, A., Fidel, A., Harshvardhan, P.I., Pearce, O., Smith, T., Thomas, N., Xu, X., Mourad, N., Vu, J., Bianco, M., Amato, N.M., Rauchwerger, L.: The STAPL Parallel Container Framework. In: Proc. ACM SIGPLAN Symp. Prin. Prac. Par. Prog (PPoPP), San Antonio, Texas, USA (2011)Google Scholar
  19. 19.
    Tanase, G., Xu, X., Buss, A., Harshvardhan, Papadopoulos, I., Pearce, O., Smith, T., Thomas, N., Bianco, M., Amato, N.M., Rauchwerger, L.: The STAPL pList. In: Gao, G.R., Pollock, L.L., Cavazos, J., Li, X. (eds.) LCPC 2009. LNCS, vol. 5898, pp. 16–30. Springer, Heidelberg (2010)CrossRefGoogle Scholar
  20. 20.
    Thomas, N., Tanase, G., Tkachyshyn, O., Perdue, J., Amato, N.M., Rauchwerger, L.: A framework for adaptive algorithm selection in STAPL. In: Proc. ACM SIGPLAN Symp. Prin. Prac. Par. Prog (PPoPP), Chicago, IL, USA, pp. 277–288 (2005)Google Scholar
  21. 21.
    Weiser, M., Powell, G.: The View Template Library. In: 1st Workshop on C++ Template Programming, Erfurt, Germany (October 2000)Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2011

Authors and Affiliations

  • Antal Buss
    • 1
  • Adam Fidel
    • 1
  • Harshvardhan
    • 1
  • Timmie Smith
    • 1
  • Gabriel Tanase
    • 1
  • Nathan Thomas
    • 1
  • Xiabing Xu
    • 1
  • Mauro Bianco
    • 1
  • Nancy M. Amato
    • 1
  • Lawrence Rauchwerger
    • 1
  1. 1.Parasol Lab, Dept. of Computer Science and EngineeringTexas A&M UniversityUSA

Personalised recommendations