ABSTRACT
Multi-core processors require programmers to exploit concurrency in software as far as possible. Unfortunately, our current concurrency abstractions make multi-core programming harder than necessary because we have to reduce unintended non-determinism on a very low level of abstraction, for instance via synchronisation mechanisms. In this experience paper we analyse if space-based systems can mitigate multi-core programming in the Java programming language and present the Procol programming model that introduces the space-based choreography of active components, which internally orchestrate fine-grained workflow activities. The main contributions are (1) the Procol programming model, (2) benchmark results of the scalability of different tuple space implementation techniques that we evaluated on different multi-core architectures, (3) benchmark results of the scalability of two equivalent Mandelbrot applications for best-case measurements -- one implemented with the standard Java thread model, one with our Procol programming model. The conclusions drawn from these experiments are (1) tuple space data structures that scale reasonably well can be provided, (2) the performance overhead that Procol imposes is at least for the considered application a reasonable trade-off for the ease of programming provided for multi-core architectures.
- Marowka, A.: Parallel Computing on any Desktop. Commun. ACM 50, 74--78 (2007) Google ScholarDigital Library
- Sutter, H.: The Free Lunch Is Over: A Fundamental Turn Toward Concurrency in Software. Dr. Dobb's Journal 30 (2005)Google Scholar
- Lee, E. A.: The Problem with Threads. IEEE Computer 39, 33--42 (2006) Google ScholarDigital Library
- Gudenkauf, S.: A Coordination-Based Model-Driven Method for Parallel Application Development. Models in Software Engineering, Workshops and Symposia at MODELS 2009, Denver, CO, USA, October 4-9, 2009, Reports and Revised Selected Papers. LNCS 6002, 21--35. Springer Heidelberg (2010) Google ScholarDigital Library
- Basili, V. R., Caldiera, G., Rombach, H. D.: The Goal Question Metric Approach. Encyclopedia of Software Engineering, 528--532. Wiley (1994)Google Scholar
- Freisleben, B., Kielmann, T.: Object-Oriented Parallel Programming with Objective Linda. Journal of Systems Architecture (1997)Google Scholar
- Hasselbring, W.: The ProSet-Linda Approach to Prototyping Parallel Systems. Journal of Systems and Software 43(3), 187--196 (1998) Google ScholarDigital Library
- Gelernter, D.: Generative Communication in Linda. ACM Trans. Program. Lang. Syst. 7, 80--112 (1985) Google ScholarDigital Library
- Ciancarini, P.: Coordination Models and Languages as Software Integrators. ACM Computing Surveys 28, 300--302 (1996) Google ScholarDigital Library
- Wegner, P.: Why interaction is more powerful than algorithms. Commun. ACM 40(5), 80--91 (1997) Google ScholarDigital Library
- Scherp, G., Höing, A., Gudenkauf, S., Hasselbring, W., Kao, O.: Using UNICORE and WS-BPEL for Scientific Workflow Execution in Grid. Euro-Par 2009 Workshops - Parallel Processing. LNCS 6043, 335--344. Springer, Heidelberg (2009) Google ScholarDigital Library
- Melzer, I.: Service-orientierte Architekturen mit Web Services. 2 edn. Elsevier, München (2007)Google Scholar
- Balzarotti, D., Costa, P., Picco, G. P.: The LighTS tuple space framework and its customization for context-aware applications. Web Intelligence and Agent Systems: An International Journal 5, 215--231. IOS Press (2007) Google ScholarDigital Library
- Georges, A., Buytaert, D., Eeckhout, L.: Statistically Rigorous Java Performance Evaluation. ACM SIGPLAN Notices - Proceedings of the 2007 OOPSLA conference 42(10), 57--76 (2007) Google ScholarDigital Library
- Fiedler, D., Walcott, K., Richardson, T., Kapfhammer, G. M., Amer, A.: Towards the Measurement of Tuple Space Performance. ACM SIGMETRICS Performance Evaluation Review 33(3) (2005) Google ScholarDigital Library
- Goetz, B.: Java Concurrency in Practice. 7th Printing edn. Addison-Wesley, Pearson Education, Inc. (2009)Google Scholar
- Borkar, S.: Thousand Core Chips - A Technology Perspective. 44th ACM/IEEE Design Automation Conference, 746--749 (2007) Google ScholarDigital Library
- Wells, G. C., Chalmers, a G., Clayton, P. G.: Linda implementations in Java for concurrent systems. Concurrency and Computation: Practice and Experience 16(10), 1005--1022 (2004) Google ScholarDigital Library
- Heiser, G.: Many-Core Chips A Case for Virtual Shared Memory. Proceedings of the 2nd Workshop on Managed Many-Core Systems. Washington, DC, USA (2009)Google Scholar
Index Terms
- Space-based multi-core programming in Java
Recommendations
Accelerating collision detection for large-scale crowd simulation on multi-core and many-core architectures
The computing capabilities of current multi-core and many-core architectures have been used in crowd simulations for both enhancing crowd rendering and simulating continuum crowds. However, improving the scalability of crowd simulation systems by ...
Optimizing image processing on multi-core CPUs with Intel parallel programming technologies
The rapid advance of computer hardware and popularity of multimedia applications enable multi-core processors with sub-word parallelism instructions to become a dominant market trend in desk-top PCs as well as high end mobile devices. This paper ...
Accelerating critical section execution with asymmetric multi-core architectures
ASPLOS 2009To improve the performance of a single application on Chip Multiprocessors (CMPs), the application must be split into threads which execute concurrently on multiple cores. In multi-threaded applications, critical sections are used to ensure that only ...
Comments