Space-based multi-core programming in Java

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.

[1]  B. Freisleben,et al.  Object-oriented Parallel Programming with Objective Linda Object-oriented Parallel Programming with Objective Linda , 2007 .

[2]  Alan Chalmers,et al.  Linda implementations in Java for concurrent systems , 2004, Concurr. Pract. Exp..

[3]  Coniferous softwood GENERAL TERMS , 2003 .

[4]  H. D. Rombach,et al.  The Goal Question Metric Approach , 1994 .

[5]  Paolo Ciancarini,et al.  Coordination models and languages as software integrators , 1996, CSUR.

[6]  David Holmes,et al.  Java Concurrency in Practice , 2006 .

[7]  Stefan Gudenkauf,et al.  A coordination-based model-driven method for parallel application development , 2009, MODELS'09.

[8]  Ingo Melzer Service-orientierte Architekturen mit Web Services , 2005, DFN-Arbeitstagung über Kommunikationsnetze.

[9]  Paolo Costa,et al.  The LighTS tuple space framework and its customization for context-aware applications , 2007, Web Intell. Agent Syst..

[10]  Edward A. Lee The problem with threads , 2006, Computer.

[11]  Lieven Eeckhout,et al.  Statistically rigorous java performance evaluation , 2007, OOPSLA.

[12]  Ami Marowka Parallel computing on any desktop , 2007, CACM.

[13]  Ahmed Amer,et al.  Towards the measurement of tuple space performance , 2005, PERV.

[14]  Herb Sutter,et al.  The Free Lunch Is Over A Fundamental Turn Toward Concurrency in Software , 2013 .

[15]  Peter Wegner,et al.  Why interaction is more powerful than algorithms , 1997, CACM.

[16]  David Gelernter,et al.  Generative communication in Linda , 1985, TOPL.

[17]  Gernot Heiser Many-core chips — a case for virtual shared memory , 2009 .

[18]  Wilhelm Hasselbring,et al.  The ProSet-Linda approach to prototyping parallel systems , 1998, J. Syst. Softw..

[19]  Wilhelm Hasselbring,et al.  Using UNICORE and WS-BPEL for Scientific Workflow Execution in Grid Environments , 2009, Euro-Par Workshops.