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.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
References
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)
Hammond, L., Hubbert, B.A., Siu, M., Prabhu, M.K., Chen, M., Olukotun, K.: The Stanford Hydra CMP. IEEE Micro 20, 71–84 (2000)
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)
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)
Forum, M.P.I.: MPI: A Message-Passing Interface Standard. Technical Report UT-CS-94-230 (1994)
OpenMP Architecture Review Board: OpenMP Application Program Interface. Version 2.5 edn (2005)
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
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)
Shah, S., Haab, G., Petersen, P., Throop, J.: Flexible Control Structures for Parallelism in OpenMP. Concurrency: Practice and Experience 12, 1219–1239 (2000)
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)
Ebcioglu, K., Saraswat, V., Sarkar, V.: X10: Programming for Hierarchical Parallelism and Non-Uniform Data Access. In: 3rd International Workshop on Language Runtimes (2004)
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)
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)
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)
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)
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
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)