Abstract
We discuss how Java annotations can be used to provide the meta information needed to automatically transform plain Java programs into suitable parallel code that can be run on workstation clusters, networks and grids. Programmers are only required to decorate 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 or multitask version, depending on the target architecture features. The results returned by the annotated methods, when invoked, are futures with a wait-by-necessity semantics. A PAL (Parallel Abstraction Layer) prototype exploiting the annotation based parallelizing approach has been implemented in Java. PAL targets JJPF, an existing, skeleton based, JAVA/JINI programming environment, 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.
This is a preview of subscription content, log in via an institution.
Buying options
Tax calculation will be finalised at checkout
Purchases are for personal use only
Learn about institutional subscriptionsPreview
Unable to display preview. Download preview PDF.
References
Java specification requests 175: A metadata facility for the java programming language. http://www.jcp.org, September 2004.
Mpi: A message-passing interface strandard. http://www.mpi-forum.org, 1994.
M. Aldinucci, M. Danelutto, and M. Vanneschi. Autonomic QoS in ASSIST Grid-aware components. In Euromicro PDP 2006: Parallel Distributed and network-based Processing. IEEE, February 2006. Montbéliard, France.
G. S. Almasi and A. Gottlieb. Highly parallel computing. Benjamin-Cummings Publishing Co., Inc., Redwood City, CA, USA, 1989.
C. T. Bruneton E, Lenglet R. Asm: a code manipulation tool to implement adaptable systems, grenoble, france. Adaptable and Extensible Component Systems, Nov. 2002.
D. Caromel. Service, asynchrony, and wait-by-necessity. Journal of Object-Oriented Programming, Nov/Dec 1989.
D. Caromel and L. Henrio. A Theory of Distributed Object. Springer-Verlag, 2005.
D. Caromel, L. Henrio, and B. Serpette. Asynchronous and deterministic objects, 2004.
M. Cole. Bringing Skeletons out of the Closet: A Pragmatic Manifesto for Skeletal Parallel Programming. Parallel Computing, Volume 30, Number 3, pages 389–406, 2004.
Programming model Institute home page, 2006. http://www.coregrid.net/mambo/content/category/3/13/261/.
M. Danelutto and P. Dazzi. A java/jini framework supporting stream parallel computations. In Proc. of Intl. PARCO 2005: Parallel Computing, September 2005.
P. Dazzi. Jjpf: a parallel programming framework based on jini. Master’s thesis, University of Pisa, July 2004. JJPF: uno strumento per calcolo parallelo con JINI.
N. DiPasquale, T. Way, and V. Gehlot. Comparative survey of approaches to automatic parallelization. In MASPLAS’05, April 2005.
C. Dittamo. Annotation based techniques for the parallelization of sequential programs (in Italian), July 2006. Graduation thesis, Dept. Computer Science, Univ. of Pisa.
J. Dünnweber and S. Gorlatch. Component-based Grid Programming using the HOC-Service Architecture. In I. H. Fujita, editor, New Trends in Software Methodologies, Tools and Techniques, Frontiers in Artificial Intelligence and Applications. IOS Press, 2005. ISBN 1-58603-556-8.
D. C. et al. Proactive. http://proactive.objectweb.org, 1999.
K. J. et al. Future for European Grids: GRIDs and Service Oriented Knowledge Utilities, January 2006. Third report of the Next Generation Grids expert group, available at http://cordis.europa.eu/ ist/ grids/ pub-report.htm.
I. Foster and C. Kesselman. The Grid: Blueprint for a New Computing Infrastructure. Morgan Kauffman, 1999.
GGF RPC WG home page, 2006. https://forge.gridforum.org/projects/gridrpc-wg/.
MPICH-G2 home page, 2006. http://www3.niu.edu/mpi/.
A. S. Grimshaw. The mentat computation model data-driven support for object-oriented parallel processing. Technical report, Dept. Comp. Science, Univ. Virginia, 28 1993.
E. N. G. G. E. Group. Next Generation Grids 2 Requirements and Options for European Grids Research 2005-2010 and Beyond, July 2004. ftp://ftp.cordis.europa.eu/ pub/ ist/ docs/ ngg2_eg_final.pdf.
M. Klemm, R. Veldema, M. Bezold, and M. Philippsen. A proposal for openmp for java. In Proceedings of the International Workshop on OpenMP, June 2006.
Krzysztof Czarnecki and Ulrich W. Eisenecker. Generative Programming - Methods, Tools, and Applications. Addison–Wesley, June 2000.
L. Henrio et al. Proposals for a Grid Component Model. Technical Report D.PM.02, CoreGRID, December 2005.
Y. Nakajima, M. Sato, T. Boku, D. Takahashi, and H. Goto. Performance Evaluation of OmniRPC in a Grid Environment. In Proc. of SAINT2004, Workshop on High Performance Grid Computing and Networking, pages 658–664, January 2004.
Ninf: A Global Computing Infrastructure, 2006. http://ninf.apgrid.org/.
Novell. Mono project. http://www.mono-project.com/, 2005.
M. Philippsen. A survey of concurrent object-oriented languages. Concurrency: Practice and Experience, Volume 12, Number 10, pages 917–980, 2000.
M. Philippsen and M. Zenger. JavaParty – transparent remote objects in Java. Concurrency: Practice and Experience, Volume 9, Number 11, pages 1225–1242, Nov. 1997.
F. Y. Tim Lindholm. The Java Virtual Machine Specification. Sun Microsystems Press, second edition edition, 2004.
S. Tse. Typed intermediate languages. Technical report, Dept. Comp. Science, University of Pennsylvania, 2004.
R. V. van Nieuwpoort, J. Maassen, G. Wrzesinska, R. Hofman, C. Jacobs, T. Kielmann, and H. E. Bal. Ibis: a flexible and efficient java-based grid programming environment. Concurrency and Computation: Practice & Experience, Volume 17, Number 7-8, pages 1079–1107, 2005.
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2008 Springer Science+Business Media, LLC
About this chapter
Cite this chapter
Danelutto, M., Pasin, M., Vanneschi, M., Dazzi, P., Laforenza, D., Presti, L. (2008). PAL: Exploiting Java Annotations for Parallelism. In: Gorlatch, S., Bubak, M., Priol, T. (eds) Achievements in European Research on Grid Systems. Springer, Boston, MA. https://doi.org/10.1007/978-0-387-72812-4_7
Download citation
DOI: https://doi.org/10.1007/978-0-387-72812-4_7
Publisher Name: Springer, Boston, MA
Print ISBN: 978-0-387-72811-7
Online ISBN: 978-0-387-72812-4
eBook Packages: Computer ScienceComputer Science (R0)