8481 articles  [version française]

hal-00720012, version 1

A Language for Multi-threaded Active Objects

Ludovic Henrio (, http://www-sop.inria.fr/oasis/Ludovic.Henrio) 1, Fabrice Huet () 1, Zsolt István 2

N° RR-8021 (2012)

Abstract: The active object programming model is particularly adapted to easily program distributed objects: it separates objects into several activities, each manipulated by a single thread, preventing data races. However, this programming model has its limitations in terms of expressiveness -- risk of deadlocks -- and of efficiency on multicore machines. To overcome these limitations, this paper presents an extension of the active object model, called multi-active objects, that allows each activity to be multithreaded. The new model is implemented as a Java library and relies on method annotations to decide which requests can be run in parallel. It provides implicit parallelism, sparing the programmer from low-level concurrency mechanisms. We define the operational semantics of the multi-active objects and study the basic properties of this model. The benefits of our proposal are highlighted using two different applications: the NAS Parallel Benchmarks and a peer-to-peer overlay. This report presents the multi-active object programming model, its implementation in Java, its formal semantics and properties, and some experiments showing its efficiency.

  • 1:  OASIS (INRIA Sophia Antipolis / Laboratoire I3S)
  • INRIA – Université Nice Sophia Antipolis [UNS] – CNRS : UMR7271
  • 2:  Department of Computer Science (ETH Zurich)
  • ETH Zurich
  • Domain : Computer Science/Distributed, Parallel, and Cluster Computing
  • Keywords : programming languages – active objects – parallelism – distribution
  • Internal note : RR-8021
  • Available versions :  v1 (2012-07-23) v2 (2013-02-15)
 
  • hal-00720012, version 1
  • oai:hal.inria.fr:hal-00720012
  • From: 
  • Submitted on: Monday, 23 July 2012 13:41:16
  • Updated on: Monday, 23 July 2012 13:59:41