Aspect Oriented Pluggable Support for Parallel Computing

  • João L. Sobral
  • Carlos A. Cunha
  • Miguel P. Monteiro
Part of the Lecture Notes in Computer Science book series (LNCS, volume 4395)

Abstract

In this paper, we present an approach to develop parallel applications based on aspect oriented programming. We propose a collection of aspects to implement group communication mechanisms on parallel applications. In our approach, parallelisation code is developed by composing the collection into the application core functionality. The approach requires fewer changes to sequential applications to parallelise the core functionality than current alternatives and yields more modular code. The paper presents the collection and shows how the aspects can be used to develop efficient parallel applications.

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. 1.
    Matsuoka, S., Taura, K., Yonezawa, A.: Highly Efficient and Encapsulated Re use of Synchronisation Code in Concurrent Object Oriented Languages. In: OOPSLA ‘93 (Oct. 1993)Google Scholar
  2. 2.
    Harbulot, B., Gurd, J.: Using AspectJ to Separate Concerns in Parallel Scientific Java Code. In: ACM AOSD’04, Lancaster, UK, March 2004, ACM Press, New York (2004)Google Scholar
  3. 3.
    Kiczales, G., et al.: Aspect Oriented Programming. In: Aksit, M., Matsuoka, S. (eds.) ECOOP 1997. LNCS, vol. 1241, Springer, Heidelberg (1997)CrossRefGoogle Scholar
  4. 4.
    Soares, S., Loureiro, E., Borba, P.: Implementing Distribution and Persistence Aspects With AspectJ. In: OOPSLA ’02 (November 2002)Google Scholar
  5. 5.
    Ceccato, M., Tonella, P.: Adding Distribution to Existing Applications by means of Aspect Oriented Programming. In: 4th IEEE SCAM, September 2004, IEEE Computer Society Press, Los Alamitos (2004)Google Scholar
  6. 6.
    Tilevich, E., et al.: Aspectizing Server-Side Distribution. In: IEEE ASE 2003, Montreal, Canada, October 2003, IEEE, Los Alamitos (2003)Google Scholar
  7. 7.
    Zhang, C., Jacobsen, H.: Resolving Feature Convolution in Middleware Systems. In: OOPSLA’04, Vancouver, Canada (October 2004)Google Scholar
  8. 8.
    Yonezawa, A., Tokoro, M. (eds.): Object-Oriented Concurrent Programming. MIT Press, Cambridge (1987)Google Scholar
  9. 9.
    Chien, A., et al.: Concurrent Aggregates (CA) Language Report - Version 2.0. TR, Dep. Computer Science, University of Illinois, UC (Nov. 1993)Google Scholar
  10. 10.
    Wilson, G. (ed.): Parallel Programming Using C++. MIT Press, Cambridge (1996)Google Scholar
  11. 11.
    Philippsen, M.: A Survey of Concurrent Object-Oriented Languages. Concurrency: Practice and Experience 10(12) (2000)Google Scholar
  12. 12.
    Factor, M., Schuster, A., Shagin, K.: A Distributed Runtime for Java: Yesterday and Today. In: IEEE IPDPS’04, New Mexico, April 2004, IEEE Computer Society Press, Los Alamitos (2004)Google Scholar
  13. 13.
    Baude, F., et al.: Programming, Composing Deploying for the Grid. In: Cunha, J.C., Rana, O.F. (eds.) Grid Computing: Software Environments and Tools, January 2006, Springer, Heidelberg (2006)Google Scholar
  14. 14.
    Maassen, J., et al.: Efficient Group Method Invocation for Parallel Programming. In: Sixth Workshop on Languages, Compilers, and Run-time Systems for Scalable Computers (LCR-02), Washington DC (March 2002)Google Scholar
  15. 15.
    Baduel, L., Baude, F., Caromel, D.: Object-Oriented SPMD. In: International Symposium on Cluster Computing and the Grid (CCGrid2005), Cardiff (May 2005)Google Scholar
  16. 16.
    Darlington, J., et al.: Parallel Skeletons for Structured Composition. In: PPoPP’95, Santa Clara, USA (1995)Google Scholar
  17. 17.
    Trinder, P., et al.: Algorithm + Strategy = Parallelism. Journal of Functional Programming 8(1) (1998)Google Scholar
  18. 18.
    Rabhi, F., Gorlatch, S. (eds.): Patterns and Skeletons for Parallel and Distributed Computing. Springer, Heidelberg (2003)MATHGoogle Scholar
  19. 19.
    Fernando, J., Sobral, J., Proenca, A.: JaSkel: A Java Skeleton-Based Framework for Structured Cluster and Grid Computing. In: CCGrid’2006, Singapore (May 2006)Google Scholar
  20. 20.
    Tan, K., et al.: Using Generative Design Patterns to Generate Parallel Code for a Distributed Memory Environment. In: PPoPP’03, San Diego, California, USA (June 2003)Google Scholar
  21. 21.
    Sobral, J.: Incrementally Developing Parallel Applications with AspectJ. In: IEEE IPDPS’06, Rhodes, Greece, April 2006, IEEE, Los Alamitos (2006)Google Scholar
  22. 22.
    Cunha, C., Sobral, J., Monteiro, M.: Reusable Aspect-Oriented Implementations of Concurrency Patterns and Mechanisms. In: AOSD’06, Bonn, Germany (March 2006)Google Scholar
  23. 23.
    OpenMP architecture review board, OpenMP Application Program Interface, Version 2.5 (May 2005), http://www.openmp.org
  24. 24.
    Kiczales, G., et al.: An Overview of AspectJ. In: Knudsen, J.L. (ed.) ECOOP 2001. LNCS, vol. 2072, Springer, Heidelberg (2001)CrossRefGoogle Scholar
  25. 25.
    Kiczales, G., et al.: Getting Started with AspectJ. Communications of the ACM 44(10) (2001)Google Scholar
  26. 26.
    Smith, A., Bull, J., Obdrzálek, J.: A Parallel Java Grande Benchmark Suite. In: Supercomputing (SC’01) (November 2001)Google Scholar

Copyright information

© Springer Berlin Heidelberg 2007

Authors and Affiliations

  • João L. Sobral
    • 1
  • Carlos A. Cunha
    • 2
  • Miguel P. Monteiro
    • 3
  1. 1.Departamento de Informática, Universidade do Minho, BragaPortugal
  2. 2.Escola Superior de Tecnologia, Instituto Politécnico de ViseuPortugal
  3. 3.Faculdade de Ciências e Tecnologia, Universidade Nova de LisboaPortugal

Personalised recommendations