Skip to main content

Factory: An Object-Oriented Parallel Programming Substrate for Deep Multiprocessors

  • Conference paper
High Performance Computing and Communications (HPCC 2005)

Abstract

Recent advances in processor technology such as Simultaneous Multithreading (SMT) and Chip Multiprocessing (CMP) enable parallel processing on a single die. These processors are used as building blocks of shared-memory multiprocessor systems, or clusters of multiprocessors. New programming languages and tools are necessary due to the complexities introduced by systems with multigrain, multilevel execution capabilities. This paper introduces Factory, an object-oriented parallel programming substrate which allows programmers to express multigrain parallelism, but alleviates them from having to manage it. Factory is written in C++ without introducing any extensions to the language. Because it leverages existing C++ constructs to express arbitrarily nested parallel computations, it is highly portable and does not require extra compiler support. Moreover, Factory offers programmability and performance comparable to already established multithreading substrates.

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 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

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. Tullsen, D.M., Eggers, S., Levy, H.M.: Simultaneous Multithreading: Maximizing On-Chip Parallelism. In: Proceedings of the 22th Annual International Symposium on Computer Architecture (1995)

    Google Scholar 

  2. Hammond, L., Hubbert, B.A., Siu, M., Prabhu, M.K., Chen, M., Olukotun, K.: The Stanford Hydra CMP. IEEE Micro 20, 71–84 (2000)

    Article  Google Scholar 

  3. Takayanagi, T., Shin, J., Petrick, B., Su, J., Leon, A.: A Dual-Core 64b UltraSPARC Microprocessor for Dense Server Applications. In: Proc. of the 41st Conference on Design Automation (DAC 2004), San Diego, CA, U.S.A, pp. 673–677 (2004)

    Google Scholar 

  4. Cascaval, C., Castanos, J., Ceze, L., Dennea, M., Gupta, M., Lieber, D., Moreira, J., Strauss, K.: Evaluation of a Multithreaded Architecture for Cellular Computing. In: 8th International Symposium on High-Performance Computer Architecture (HPCA-8), Cambridge, MA, U.S.A, pp. 311–321 (2002)

    Google Scholar 

  5. Forum, M.P.I.: MPI: A Message-Passing Interface Standard. Technical Report UT-CS-94-230 (1994)

    Google Scholar 

  6. OpenMP Architecture Review Board: OpenMP Application Program Interface. Version 2.5 edn (2005)

    Google Scholar 

  7. Scott Schneider, C.D.A., Nikolopoulos, D.S.: Factory: An Object-Oriented Parallel Programming Substrate for Deep Multiprocessors. Technical Report WM-CS-2005-06, The College of William and Mary (2005), http://www.cs.wm.edu/~scotts/papers/wm-cs-2005-06.pdf

  8. Blumofe, R., Joerg, C., Kuszmaul, B., Leiserson, C., Randall, K., Zhou, Y.: Cilk: An Efficient Multithreaded Runtime System. In: Proceedings of the 5th Symposium on Principles and Practice of Parallel Programming (1995)

    Google Scholar 

  9. Shah, S., Haab, G., Petersen, P., Throop, J.: Flexible Control Structures for Parallelism in OpenMP. Concurrency: Practice and Experience 12, 1219–1239 (2000)

    Article  MATH  Google Scholar 

  10. Xinmin, T., Girkar, M., Shah, S., Armstrong, D., Su, E., Petersen, P.: Compiler and Runtime Support for Running OpenMP Programs on Pentium and Itanium architectures. In: Proceedings of the Eighth International Workshop on High-Level Parallel Programming Models and Supportive Environments, Nice, France, pp. 47–55 (2003)

    Google Scholar 

  11. Ebcioglu, K., Saraswat, V., Sarkar, V.: X10: Programming for Hierarchical Parallelism and Non-Uniform Data Access. In: 3rd International Workshop on Language Runtimes (2004)

    Google Scholar 

  12. Michael, M.M., Scott, M.L.: Simple, Fast, and Practical Non-Blocking and Blocking Concurrent Queue Algorithms. In: Proceedings of the 15th annual ACM Symposium on Principles of Distributed Computing (PODC 1996), Philadelphia, Pennsylvania, U.S.A, pp. 267–275 (1996)

    Google Scholar 

  13. Woo, S.C., Ohara, M., Torrie, E., Singh, J.P., Gupta, A.: The SPLASH-2 Programs: Characterization and Methodological Considerations. In: Proceedings of the 22nd International Symposium on Computer Architecture, Santa Margherita Ligure, Italy, pp. 24–36 (1995)

    Google Scholar 

  14. Radović, Z., Hagersten, E.: Efficient Synchronization for Non-Uniform Communication Architectures. In: Supercomputing ’02: Proceedings of the 2002 ACM/IEEE conference on Supercomputing, pp. 1–13. IEEE Computer Society Press, Los Alamitos (2002)

    Google Scholar 

  15. Frigo, M., Leiserson, C.E., Randall, K.H.: The Implementation of the Cilk-5 Multithreaded Language. In: PLDI 1998: Proceedings of the ACM SIGPLAN 1998 conference on Programming language design and implementation, pp. 212–223. ACM Press, New York (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

© 2005 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Schneider, S., Antonopoulos, C.D., Nikolopoulos, D.S. (2005). Factory: An Object-Oriented Parallel Programming Substrate for Deep Multiprocessors. In: Yang, L.T., Rana, O.F., Di Martino, B., Dongarra, J. (eds) High Performance Computing and Communications. HPCC 2005. Lecture Notes in Computer Science, vol 3726. Springer, Berlin, Heidelberg. https://doi.org/10.1007/11557654_28

Download citation

  • DOI: https://doi.org/10.1007/11557654_28

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-29031-5

  • Online ISBN: 978-3-540-32079-1

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics