Adapting Active Objects to Multicore Architectures

There are several programming paradigms that help programmers write efficient and verifiable code for distributed environments. These solutions, however, often lack proper support for local parallelism. In this article we try to improve existing solutions for providing a distributed, highly parallel framework that is easy to program. We propose an extension to the active object programming model which optimizes the local performance of applications by harnessing the full computing power of multi-core CPUs. The need for explicit locking mechanisms is reduced by the addition of meta-information to the methods in the source code. This paper describes this language-independent meta-information, and the way we intend to use it for parallelizing execution inside an active object.

[1]  Bruce D. Shriver,et al.  Research Directions in Object-Oriented Programming , 1987 .

[2]  Denis Caromel,et al.  Towards seamless computing and metacomputing in Java , 1998 .

[3]  Liuba Shrira,et al.  Promises: linguistic support for efficient asynchronous procedure calls in distributed systems , 1988, PLDI '88.

[4]  Carl Hewitt,et al.  Actors: A Conceptual Foundation for Concurrent Object-Oriented Programming , 1987, Research Directions in Object-Oriented Programming.

[5]  Per Brinch Hansen,et al.  Java's insecure parallelism , 1999, SIGP.

[6]  Ulf T. Wiger Four-fold Increase in Productivity and Quality , 2001 .

[7]  Denis Caromel,et al.  Asynchronous and deterministic objects , 2004, POPL '04.

[8]  Patrizio Dazzi,et al.  PAL: Exploiting Java Annotations for Parallelism , 2006, CoreGRID Integration Workshop.

[9]  Martin Odersky,et al.  Scala Actors: Unifying thread-based and event-based programming , 2009, Theor. Comput. Sci..

[10]  Einar Broch Johnsen,et al.  Creol: A type-safe object-oriented model for distributed concurrent systems , 2006, Theor. Comput. Sci..

[11]  Jaco van de Pol,et al.  Distributed Algorithms for SCC Decomposition , 2011, J. Log. Comput..

[12]  João Luís Sobral,et al.  Pluggable parallelisation , 2009, HPDC '09.

[13]  Eric Madelaine,et al.  Model-checking Distributed Components: The Vercors Platform , 2007, Electron. Notes Theor. Comput. Sci..

[14]  Andreas Paepcke,et al.  Conference proceedings on Object-oriented programming systems, languages, and applications , 1991, Conference on Object-Oriented Programming Systems, Languages, and Applications.

[15]  Satoshi Matsuoka,et al.  ABCL/f: A Future-Based Polymorphic Typed Concurrent Object-Oriented Language- Its Design and Implementation , 1994, Specification of Parallel Algorithms.

[16]  Denis Caromel,et al.  Towards Seamless Computing and Metacomputing in Java , 1998, Concurr. Pract. Exp..

[17]  Vivek Sarkar,et al.  X10: an object-oriented approach to non-uniform cluster computing , 2005, OOPSLA '05.

[18]  Alan Snyder Encapsulation and inheritance in object-oriented programming languages , 1986, OOPSLA 1986.

[19]  G.A.C.P. Ganegoda,et al.  JConqurr - A Multi-Core Programming Toolkit for Java , 2009 .

[20]  Frank S. de Boer,et al.  Verification for Java's Reentrant Multithreading Concept , 2002, FoSSaCS.

[21]  Theo D'Hondt,et al.  Ambient-oriented programming , 2005, OOPSLA '05.

[22]  G. Agha An overview of actor languages , 1986, OOPWORK '86.

[23]  Theo D'Hondt,et al.  Ambient-oriented programming in ambientTalk , 2005, OOPSLA '05.

[24]  Douglas C. Schmidt,et al.  Active object: an object behavioral pattern for concurrent programming , 1996 .

[25]  Alan Bundy,et al.  Constructing Induction Rules for Deductive Synthesis Proofs , 2006, CLASE.

[26]  Klaus-Peter Löhr,et al.  JAC: declarative Java concurrency , 2006, Concurr. Comput. Pract. Exp..