Premium
JavaSymphony: a new programming paradigm to control and synchronize locality, parallelism and load balancing for parallel and distributed computing
Author(s) -
Fahringer Thomas,
Jugravu Alexandru
Publication year - 2005
Publication title -
concurrency and computation: practice and experience
Language(s) - English
Resource type - Journals
SCImago Journal Rank - 0.309
H-Index - 67
eISSN - 1532-0634
pISSN - 1532-0626
DOI - 10.1002/cpe.840
Subject(s) - computer science , distributed computing , asynchronous communication , locality , synchronization (alternating current) , load balancing (electrical power) , java , programming paradigm , programmer , parallel computing , runtime system , programming language , grid , computer network , channel (broadcasting) , philosophy , linguistics , geometry , mathematics
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.