Using AspectJ to separate concerns in parallel scientific Java code

Bruno Harbulot, John R. Gurd

    Research output: Chapter in Book/Report/Conference proceedingConference contribution

    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 for-loops 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. Copyright 2004 ACM.
    Original languageEnglish
    Title of host publicationAOSD 2004: 3rd International Conference on Aspect-Oriented Software Development - Conference Proceedings|AOSD Int. Conf. Asp. Oriented Softw. Dev. Conf. Proc.
    EditorsK. Lieberherr
    Pages122-131
    Number of pages9
    DOIs
    Publication statusPublished - 2004
    EventAOSD 2004: 3rd International Conference on Aspect-Oriented Software Development - Conference Proceedings - Lancaster
    Duration: 1 Jul 2004 → …

    Conference

    ConferenceAOSD 2004: 3rd International Conference on Aspect-Oriented Software Development - Conference Proceedings
    CityLancaster
    Period1/07/04 → …

    Fingerprint

    Dive into the research topics of 'Using AspectJ to separate concerns in parallel scientific Java code'. Together they form a unique fingerprint.

    Cite this