PAL: High Level Parallel Programming with Java Annotations

We present a new programming model based on user annotations that can be used to transform plain Java programs into suitable parallel code that can be run on workstation clusters, networks and grids. The only user responsibility consists in decorating the methods that will eventually be executed in parallel with standard Java 1.5 annotations. Then these annotations are automatically processed and parallel byte code is derived. When the annotated program is started, it automatically retrieves the information about the executing platform and evaluates the information specified inside the annotations to transform the byte-code into a semantically equivalent multithreaded/multitask version. The results returned by the annotated methods, when invoked, are futures with a waitby-necessity semantics. A PAL prototype has been implemented in Java, using JJPF [11] as Parallel Framework. The experiments made with the prototype are encouraging: the design of parallel applications has been greatly simplified and the performances obtained are the same of an application directly written in JJPF.

[1]  Patrizio Dazzi,et al.  A Java/Jini Framework Supporting Stream Parallel Computations , 2005, PARCO.

[2]  Jason Maassen,et al.  Ibis: a flexible and efficient Java‐based Grid programming environment , 2005, Concurr. Pract. Exp..

[3]  Stephen Tse,et al.  Typed Intermediate Languages , 2004 .

[4]  Domenico Talia,et al.  Next Generation Grids 2 - Requirements and Options for European Grids Research 2005-2010 and Beyond , 2004 .

[5]  Ian Foster,et al.  The Grid 2 - Blueprint for a New Computing Infrastructure, Second Edition , 1998, The Grid 2, 2nd Edition.

[6]  Krzysztof Czarnecki,et al.  Generative programming - methods, tools and applications , 2000 .

[7]  Ami Marowka,et al.  The GRID: Blueprint for a New Computing Infrastructure , 2000, Parallel Distributed Comput. Pract..

[8]  Marco Danelutto,et al.  Autonomic QoS in ASSIST grid-aware components , 2006, 14th Euromicro International Conference on Parallel, Distributed, and Network-Based Processing (PDP'06).

[9]  Thomas Way,et al.  COMPARATIVE SURVEY OF APPROACHES TO AUTOMATIC PARALLELIZATION , 2005 .

[10]  Aaas News,et al.  Book Reviews , 1893, Buffalo Medical and Surgical Journal.

[11]  Mitsuhisa Sato,et al.  Performance evaluation of OmniRPC in a grid environment , 2004, 2004 International Symposium on Applications and the Internet Workshops. 2004 Workshops..

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

[13]  Sergei Gorlatch,et al.  Component-Based Grid Programming Using the HOC-Service Architecture , 2005, SoMeT.

[14]  Murray Cole,et al.  Bringing skeletons out of the closet: a pragmatic manifesto for skeletal parallel programming , 2004, Parallel Comput..

[15]  Denis Caromel,et al.  A theory of distributed objects - asynchrony, mobility, groups, components , 2005 .

[16]  Thierry Coupaye,et al.  ASM: a code manipulation tool to implement adaptable systems , 2002 .

[17]  Denis Caromel,et al.  A Theory of Distributed Objects , 2005 .

[18]  Michael Philippsen,et al.  JavaParty – transparent remote objects in Java , 1997 .

[19]  Allan Gottlieb,et al.  Highly parallel computing , 1989, Benjamin/Cummings Series in computer science and engineering.

[20]  Andrew S. Grimshaw The Mentat Computation Model Data-Driven Support for Object-Oriented Parallel Processing , 1993 .

[21]  Michael Philippsen,et al.  A survey of concurrent object-oriented languages , 2000, Concurr. Pract. Exp..

[22]  E. O'Neill,et al.  Future for European Grids : GRIDs and Service Oriented Knowledge Utilities Vision and Research Directions 2010 and Beyond , 2006 .

[23]  Frank Yellin,et al.  The Java Virtual Machine Specification , 1996 .