Skip to main content

A Container-Iterator Parallel Programming Model

  • Conference paper
  • 1163 Accesses

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

Abstract

There are several parallel programming models available for numerical computations at different levels of expressibility and ease of use. For the development of new domain specific programming models, a splitting into a distributed data container and parallel data iterators is proposed. Data distribution is implemented in application specific libraries. Data iterators are directly analysed and compiled automatically into parallel code. Target architectures of the source-to-source translation include shared (pthreads, Cell SPE), distributed memory (MPI) and hybrid programming styles. A model applications for grid based hierarchical numerical methods and an auto-parallelizing compiler are introduced.

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   129.00
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD   169.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. Butenhof, D.R.: Programming with POSIX Threads. Addison-Wesley, Reading (1997)

    Google Scholar 

  2. Reinders, J.: Intel Threading Building Blocks. O’ Reilly (2007)

    Google Scholar 

  3. Blumofe, R.D., Joerg, C.F., Leiserson, C.E., Randall, K.H., Zhou, Y.: Cilk: An efficient multithreaded runtime system. In: 5th ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming PPoPP 1995, pp. 207–216. ACM, New York (1995)

    Chapter  Google Scholar 

  4. Sutter, H.: The Concur project: Some experimental concurrency abstractions for imperative languages (2006), slides at: http://www.nwcpp.org/Downloads/2006/The_Concur_Project_-_NWCPP.pdf

  5. Chandra, R., Menon, R., Dagum, L., Kohr, D., Maydan, D., McDonald, J.: Parallel programming in OpenMP. Morgan Kaufmann, San Francisco (2000)

    Google Scholar 

  6. Pacheco, P.: Parallel programming with MPI. Morgan Kaufmann, San Francisco (1996)

    Google Scholar 

  7. Koelbel, C.: The High Performance Fortran handbook. MIT Press, Cambridge (1993)

    Google Scholar 

  8. Numrich, R.W., Reid, J.: Co-array Fortran for parallel programming. ACM Fortran Forum 17(2), 1–31 (1998)

    Article  Google Scholar 

  9. Chamberlain, B.L., Callahan, D., Zima, H.P.: Parallel programmability and the Chapel language. Int. J. high perf. computing 21(3), 231–312 (2007)

    Google Scholar 

  10. Steele, G.: Parallel programming and parallel abstractions in Fortress. In: Proc. 14th Int. Conf. on Parallel Architectures and Compilation Techniques, pp. 157–160. IEEE, Los Alamitos (2005)

    Google Scholar 

  11. Ghazawi, T.E., Carlson, W., Sterling, T.L.: Distributed shared-memory programming with UPC. Wiley, Chichester (2005)

    Google Scholar 

  12. 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: Proc. 20th ACM conf. on object oriented programming, pp. 519–538. ACM Press, New York (2005)

    Google Scholar 

  13. Herrmann, C., Lengauer, C.: HDC: A higher-order language for divide-and-conquer. Parallel Proc. Let. 10(2/3), 239–250 (2000)

    Article  Google Scholar 

  14. Zumbusch, G.: Data parallel iterators for hierarchical grid and tree algorithms. In: Nagel, W.E., Walter, W.V., Lehner, W. (eds.) Euro-Par 2006. LNCS, vol. 4128, pp. 625–634. Springer, Heidelberg (2006)

    Chapter  Google Scholar 

  15. Quinlan, D., Schordan, M., Yi, Q., de Supinski, B.R.: Semantic-driven parallelization of loops operating on user-defined containers. In: Rauchwerger, L. (ed.) LCPC 2003. LNCS, vol. 2958, pp. 524–538. Springer, Heidelberg (2004)

    Google Scholar 

  16. Oldham, J.D.: POOMA. A C++ Toolkit for High-Performance Parallel Scientific Computing. CodeSourcery (2002)

    Google Scholar 

  17. Griebel, M., Knapek, S., Zumbusch, G.: Numerical simulation in molecular dynamics. Springer, Heidelberg (2007)

    MATH  Google Scholar 

  18. Austern, M.H.: Generic programming and the STL. Addison-Wesley, Reading (1999)

    Google Scholar 

  19. Järvi, J., Powell, G.: The lambda library: Lambda abstraction in C++. In: Proc. 2nd workshop on C++ Template Programming at OOPSLA 2001 (2001), http://www.oonumerics.org/tmpw01

  20. Birken, K.: Semi-automatic parallelisation of dynamic, graph-based applications. In: Proc. Conf. ParCo 1997, pp. 269–276. Elsevier, Amsterdam (1998)

    Google Scholar 

  21. Kahle, J.A., Day, M.N., Hofstee, H.P., Johns, C.R., Maeurer, T.R., Shippy, D.: Introduction to the Cell multiprocessor. IBM J. Res. & Dev. 49(4/5), 589–604 (2005)

    Article  Google Scholar 

  22. Warren, M.S., Salmon, J.K.: A portable parallel particle program. Comput. Phys. Commun. 87(1–2), 266–290 (1995)

    Article  MATH  Google Scholar 

  23. Lengauer, C.: Program optimization in the domain of high-performance parallelism. In: Lengauer, C., Batory, D., Consel, C., Odersky, M. (eds.) Domain-Specific Program Generation. LNCS, vol. 3016, pp. 73–91. Springer, Heidelberg (2004)

    Google Scholar 

  24. Bailey, D.H., Barszcz, E., Barton, J.T., Browning, D.S., Carter, R.L., Dagum, L., Fatoohi, R.A., Frederickson, P.O., Lasinski, T.A., Schreiber, R.S., Simon, H.D., Venkatakrishnam, V., Weeratunga, S.K.: The NAS parallel benchmarks. Inter. J. Supercomp. Appl. 5(3), 63–73 (1991)

    Article  Google Scholar 

  25. Zumbusch, G.: Data dependence analysis for the parallelization of numerical tree codes. In: Kågström, B., Elmroth, E., Dongarra, J., Waśniewski, J. (eds.) PARA 2006. LNCS, vol. 4699, pp. 890–899. Springer, Heidelberg (2007)

    Chapter  Google Scholar 

  26. IBM: Cell Broadband Engine Programming Tutorial. 2.1 edn. (2007)

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Roman Wyrzykowski Jack Dongarra Konrad Karczewski Jerzy Wasniewski

Rights and permissions

Reprints and permissions

Copyright information

© 2008 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Zumbusch, G. (2008). A Container-Iterator Parallel Programming Model. In: Wyrzykowski, R., Dongarra, J., Karczewski, K., Wasniewski, J. (eds) Parallel Processing and Applied Mathematics. PPAM 2007. Lecture Notes in Computer Science, vol 4967. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-540-68111-3_120

Download citation

  • DOI: https://doi.org/10.1007/978-3-540-68111-3_120

  • Publisher Name: Springer, Berlin, Heidelberg

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

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

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics