JavaSymphony: a new programming paradigm to control and synchronize locality, parallelism and load balancing for parallel and distributed computing: Research Articles

  • Authors:
  • Thomas Fahringer;Alexandru Jugravu

  • Affiliations:
  • Institute for Software Science, University of Vienna and Institute for Computer Science, University of Innsbruck, Technikerstrasse 21a, A-6020 Innsbruck, Austria;Institute for Software Science, University of Vienna, Liechtensteinstrasse 22, A-1090 Vienna, Austria

  • Venue:
  • Concurrency and Computation: Practice & Experience - 2002 ACM Java Grande–ISCOPE Conference Part II
  • Year:
  • 2005

Quantified Score

Hi-index 0.00

Visualization

Abstract

There has been an increasing research interest in extending the use of Java towards performance-oriented programming for distributed and concurrent applications. JavaSymphony is a Java-based programming paradigm that allows the programmer to control parallelism, load balancing, and locality at a high level of abstraction. Objects can be explicitly distributed and migrated based on a high-level API to static/dynamic system parameters and dynamic virtual distributed architectures, which impose a virtual hierarchy on a distributed system of physical computing nodes. In this paper we describe various extensions to the original JavaSymphony API, which includes a generalization of virtual architectures that can be used to specify and to request arbitrary heterogeneous distributed and concurrent architectures inside of a JavaSymphony program. The number of threads that execute an object's methods can be controlled dynamically through single- and multi-threaded objects. Conventional Java objects can be dynamically converted to JavaSymphony objects. A (un)lock mechanism has been introduced in order to avoid inconsistent modifications of objects or virtual architectures. A sophisticated event mechanism for asynchronous communication, coordination, and interaction is provided. Several synchronization constructs including distributed barrier synchronization and synchronization for asynchronous method invocations have been included. Several experiments are presented to demonstrate the effectiveness and efficiency of JavaSymphony. Copyright © 2005 John Wiley & Sons, Ltd.