ACM Home Page
Please provide us with feedback. Feedback
Using AspectJ to separate concerns in parallel scientific Java code
Full text PdfPdf (1.17 MB)
Source Aspect-oriented software development archive
Proceedings of the 3rd international conference on Aspect-oriented software development table of contents
Lancaster, UK
Pages: 122 - 131  
Year of Publication: 2004
ISBN:1-58113-842-3
Authors
Bruno Harbulot  University of Manchester, Manchester, UK
John R. Gurd  University of Manchester, Manchester, UK
Sponsors
SIGSOFT: ACM Special Interest Group on Software Engineering
SIGPLAN: ACM Special Interest Group on Programming Languages
Publisher
ACM  New York, NY, USA
Bibliometrics
Downloads (6 Weeks): 21,   Downloads (12 Months): 60,   Citation Count: 18
Additional Information:

abstract   references   cited by   collaborative colleagues  

Tools and Actions: Request Permissions Request Permissions    Review this Article  
DOI Bookmark: Use this link to bookmark this Article: http://doi.acm.org/10.1145/976270.976286
What is a DOI?

ABSTRACT

Scientific software frequently demands high performance in order to execute complex models in acceptable time. A major means of obtaining high performance is via parallel execution on multi-processor systems. However, traditional methods of programming for parallel execution can lead to substantial code-tangling where the needs of the mathematical model crosscut with the concern of parallel execution.Aspect-Oriented Programming is an attractive technology for solving the problem of code-tangling in high performance parallel scientific software. The underlying mathematical model and the parallelism can be treated as separate concerns and programmed accordingly. Their elements of code can then be woven together to produce the final application. This paper investigates the extent to which AspectJ technology can be used to achieve the desired separation of concerns in programs from the Java Grande Forum benchmark suite, a set of test applications for evaluation of the performance of Java in the context of numerical computation. The paper analyses three different benchmark programs and classifies the degrees of difficulty in separating concerns within them in a form suitable for AspectJ. This leads to an assessment of the influence of the design of a numerical application on the ability of AspectJ to solve this kind of code-tangling problem. It is concluded that: (1) scientific software is rarely produced in true object-oriented style; and (2) the inherent loop structure of many scientific algorithms is incompatible with the join point philosophy of AspectJ.Since AspectJ cannot intercept the iterations of for-loops (which are at the heart of high-performance computing), various object-oriented models are proposed for describing (embarrassingly parallel) rectangular double-nested forloops that make it possible to use AspectJ for encapsulating parallelisation in an aspect. Finally, a test-case using these models is presented, together with performance results obtained on various Java Virtual Machines.


REFERENCES

Note: OCR errors may be found in this Reference List extracted from the full text article. ACM has opted to expose the complete List rather than only correct and linked references.

 
1
M. Baker et al. mpiJava: A Java interface to MPI. In First UK Workshop on Java for High Performance Network Computing, Europar '98, Sept. 1998.
2
 
3
A. J. C. Bik, J. E. Villacis, and D. B. Gannon. javar: A prototype Java restructuring compiler. Concurrency: Practice and Experience, 9(I1):1181--1191, 1997.
 
4
J. Bull, L. Smith, M. Westhead, D. Henty, and R. Davey. Benchmarking Java Grande applications. In Proceedings of the Second International Conference on The Practical Applications of Java, pages 63--73, 2000.
5
 
6
B. Carpenter, V. Getov, G. Judd, A. Skjellum, and G. Fox. MPJ: Mpi-like message passing for java. Concurrency: Practice and Experience, 12(11):1019--1038, 2000.
 
7
 
8
 
9
 
10
C. V. Lopes. Aspect-Oriented Programming: An historical perspective (what's in a name?). Technical report, Institute for Software Research, University of California, Irvine, December 2002.
 
11
 
12
W. Press et al. Numerical Recipes in C. Cambridge University Press, Cambridge, UK, 1993.
 
13
L. A. Smith and J. M. Bull. A multithreaded Java Grande benchmark suite. In Proceedings of the Third Workshop on Java for High Performance Computing, June 2001.
14

CITED BY  18
Collaborative Colleagues:
Bruno Harbulot: colleagues
John R. Gurd: colleagues