Abstract
Object-oriented programming languages are prevalent at present and the inherent parallelism of a wide range of applications can be expressed as groups of concurrent objects. This paper proposes a new object-level parallel programming model to meet the challenge of parallel programming on chip multi-processors. This object-based computation model maps multiple software objects onto different physical processor cores at runtime. Independent objects can run concurrently and communicate with each other by synchronous, asynchronous, future and broadcast messages. In order to verify the efficiency of this model, a library implementation CPPLib of this model based on C++ is presented. The library implementation of this model requires no extension to existing object-oriented programming languages and provides good salability and portability. The performance of CPPLib is evaluated on both a dual-core desktop computer and an 8-core server using standard benchmarks. Experimental results show that CPPLib achieves average speedup levels of 1.5 and 3.6 on the dual-core desktop computer and the 8-core server, respectively, compared with their serial version.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
Similar content being viewed by others
References
Philippsen, M.: A survey of concurrent object-oriented languages. Concurrency and Computation: Practice and Experience 12, 917–980 (2000)
Boehm, H.-J.: Threads cannot be implemented as a library. In: Proceedings of the 2005 ACM SIGPLAN Conference on Programming Language Design and Implementation, Chicago, IL, USA, pp. 261–268 (June 2005)
Wikipedia, Usage share of operating systems (2011), http://en.wikipedia.org/wiki/Usage_share_of_operating_systems
Bienia, C., Kumar, S., Singh, J.P., Li, K.: The PARSEC Benchmark Suite: Characterization and Architectural Implications. In: Proceedings of the 17th International Conference on Parallel Architectures and Compilation Techniques (October 2008)
Sun Microsystems Inc., The Fortress Language Specification, Version 1.0 (2008), http://research.sun.com/projects/plrg/fortress.pdf
IBM Inc., The X10 Programming Language, http://domino.research.ibm.com/comm/research_projects.nsf/pages/x10.index.html
Chamberlain, B.L., Callahan, D., Zima, H.P.: Parallel Programmability and the Chapel Language. International Journal of High Performance Computing Applications 21(3), 291–312 (2007)
Stephen, S.: PROOF: a parallel object-oriented functional computation model. Journal of Parallel and Distributed Computing 12(3), 202–212 (1991)
Yu, M., Zang, W.Y., Xie, L., Guo, Y.M.: A Survey of Parallel Object-Oriented Language. Journal of Software 12(6), 822–829 (2001)
Grimshaw, A.S.: Easy-to-Use object-oriented parallel processing with Mentat. IEEE Computer 26(5), 39–51 (1993)
Gannon, D., Yang, S.X., Beckman, P.: User guide for a portable parallel C++ programming system: pC++. Technical Report, Indiann University (1994)
Carlin, P., Chundy, M., Kesselman, C.: The CC++ language definition, http://globus.isi.edu/ccpp/
Diwan, S., Johnson, E., Gannon, D.: HPC++ and the Europa call reification model. ACM Applied Computing Review 4(1), 251–269 (1996)
Chien, A., Dolby, J., Ganguly, B., et al.: Supporting high level programming with high performance: the Illinois concert system. In: Proceedings of the 2nd International Workshop on High-Level Parallel Programming Models and Supportive Environments, pp. 147–162 (1997)
Bik, A.J.C., Gannon, D.B.: Automatic exploiting implicit parallelism in java. Concurrency, Practice and Experience 9(6), 576–619 (1997)
Giacaman, N., Sinnen, O.: Task Parallelism for Object Oriented Programs. In: Proceeding of the International Symposium on Parallel Architectures, Algorithms and Networks, pp. 13–18 (2008)
Liu, X.: Exploiting Object-Based Parallelism on Multi-Core Multi-Processor Clusters. In: Eighth International Conference on Parallel and Distributed Computing (2007)
Yu, M., Chen, G.H., Yang, X.L., Xie, L., Guo, Y.M.: JAPS-II: a Parallelizing Compiler for Java. Journal of Software 13(4), 739–746 (2002)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2012 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Ji, W., Wang, Y., Huang, Z., Zhao, J., Li, X. (2012). Exploring Object-Level Parallelism on Chip Multi-processors. In: Xiang, Y., Stojmenovic, I., Apduhan, B.O., Wang, G., Nakano, K., Zomaya, A. (eds) Algorithms and Architectures for Parallel Processing. ICA3PP 2012. Lecture Notes in Computer Science, vol 7440. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-642-33065-0_9
Download citation
DOI: https://doi.org/10.1007/978-3-642-33065-0_9
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-642-33064-3
Online ISBN: 978-3-642-33065-0
eBook Packages: Computer ScienceComputer Science (R0)