Skip to main content

PAL: Exploiting Java Annotations for Parallelism

  • Chapter

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

Chapter
USD   29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD   84.99
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD   159.00
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info
Hardcover Book
USD   109.99
Price excludes VAT (USA)
  • Durable hardcover edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Learn about institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. Java specification requests 175: A metadata facility for the java programming language. http://www.jcp.org, September 2004.

    Google Scholar 

  2. Mpi: A message-passing interface strandard. http://www.mpi-forum.org, 1994.

    Google Scholar 

  3. 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.

    Google Scholar 

  4. G. S. Almasi and A. Gottlieb. Highly parallel computing. Benjamin-Cummings Publishing Co., Inc., Redwood City, CA, USA, 1989.

    Google Scholar 

  5. C. T. Bruneton E, Lenglet R. Asm: a code manipulation tool to implement adaptable systems, grenoble, france. Adaptable and Extensible Component Systems, Nov. 2002.

    Google Scholar 

  6. D. Caromel. Service, asynchrony, and wait-by-necessity. Journal of Object-Oriented Programming, Nov/Dec 1989.

    Google Scholar 

  7. D. Caromel and L. Henrio. A Theory of Distributed Object. Springer-Verlag, 2005.

    Google Scholar 

  8. D. Caromel, L. Henrio, and B. Serpette. Asynchronous and deterministic objects, 2004.

    Google Scholar 

  9. 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.

    Article  Google Scholar 

  10. Programming model Institute home page, 2006. http://www.coregrid.net/mambo/content/category/3/13/261/.

    Google Scholar 

  11. M. Danelutto and P. Dazzi. A java/jini framework supporting stream parallel computations. In Proc. of Intl. PARCO 2005: Parallel Computing, September 2005.

    Google Scholar 

  12. 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.

    Google Scholar 

  13. N. DiPasquale, T. Way, and V. Gehlot. Comparative survey of approaches to automatic parallelization. In MASPLAS’05, April 2005.

    Google Scholar 

  14. C. Dittamo. Annotation based techniques for the parallelization of sequential programs (in Italian), July 2006. Graduation thesis, Dept. Computer Science, Univ. of Pisa.

    Google Scholar 

  15. 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.

    Google Scholar 

  16. D. C. et al. Proactive. http://proactive.objectweb.org, 1999.

    Google Scholar 

  17. 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.

    Google Scholar 

  18. I. Foster and C. Kesselman. The Grid: Blueprint for a New Computing Infrastructure. Morgan Kauffman, 1999.

    Google Scholar 

  19. GGF RPC WG home page, 2006. https://forge.gridforum.org/projects/gridrpc-wg/.

    Google Scholar 

  20. MPICH-G2 home page, 2006. http://www3.niu.edu/mpi/.

    Google Scholar 

  21. A. S. Grimshaw. The mentat computation model data-driven support for object-oriented parallel processing. Technical report, Dept. Comp. Science, Univ. Virginia, 28 1993.

    Google Scholar 

  22. 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.

    Google Scholar 

  23. 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.

    Google Scholar 

  24. Krzysztof Czarnecki and Ulrich W. Eisenecker. Generative Programming - Methods, Tools, and Applications. Addison–Wesley, June 2000.

    Google Scholar 

  25. L. Henrio et al. Proposals for a Grid Component Model. Technical Report D.PM.02, CoreGRID, December 2005.

    Google Scholar 

  26. 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.

    Google Scholar 

  27. Ninf: A Global Computing Infrastructure, 2006. http://ninf.apgrid.org/.

    Google Scholar 

  28. Novell. Mono project. http://www.mono-project.com/, 2005.

    Google Scholar 

  29. M. Philippsen. A survey of concurrent object-oriented languages. Concurrency: Practice and Experience, Volume 12, Number 10, pages 917–980, 2000.

    Article  MATH  Google Scholar 

  30. M. Philippsen and M. Zenger. JavaParty – transparent remote objects in Java. Concurrency: Practice and Experience, Volume 9, Number 11, pages 1225–1242, Nov. 1997.

    Article  Google Scholar 

  31. F. Y. Tim Lindholm. The Java Virtual Machine Specification. Sun Microsystems Press, second edition edition, 2004.

    Google Scholar 

  32. S. Tse. Typed intermediate languages. Technical report, Dept. Comp. Science, University of Pennsylvania, 2004.

    Google Scholar 

  33. 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.

    Article  Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints 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)

Publish with us

Policies and ethics