Java Threads
The automatic generation of sparse primitives
ACM Transactions on Mathematical Software (TOMS)
JOMP—an OpenMP-like interface for Java
Proceedings of the ACM 2000 conference on Java Grande
Parallel programming in OpenMP
Parallel programming in OpenMP
Designing and Building Parallel Programs: Concepts and Tools for Parallel Software Engineering
Designing and Building Parallel Programs: Concepts and Tools for Parallel Software Engineering
A parallel java grande benchmark suite
Proceedings of the 2001 ACM/IEEE conference on Supercomputing
Aspect-Oriented Programming of Sparse Matrix Code
ISCOPE '97 Proceedings of the Scientific Computing in Object-Oriented Parallel Environments
abc: an extensible AspectJ compiler
Proceedings of the 4th international conference on Aspect-oriented software development
OOPSLA '05 Companion to the 20th annual ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
A join point for loops in AspectJ
Proceedings of the 5th international conference on Aspect-oriented software development
Reusable aspect-oriented implementations of concurrency patterns and mechanisms
Proceedings of the 5th international conference on Aspect-oriented software development
Emergent behaviour of aspects in high performance and distributed computing
SAICSIT '05 Proceedings of the 2005 annual research conference of the South African institute of computer scientists and information technologists on IT research in developing countries
Efficient control flow quantification
Proceedings of the 21st annual ACM SIGPLAN conference on Object-oriented programming systems, languages, and applications
A quantitative analysis of aspects in the eCos kernel
Proceedings of the 1st ACM SIGOPS/EuroSys European Conference on Computer Systems 2006
Applying aspect oriented programming to distributed storage metadata management
Proceedings of the 2nd workshop on Best practices in applying aspect-oriented software development
A distributed dynamic aspect machine for scientific software development
Proceedings of the 1st workshop on Virtual machines and intermediate languages for emerging modularization mechanisms
Proceedings of the 6th workshop on Aspects, components, and patterns for infrastructure software
ICSE '07 Proceedings of the 29th international conference on Software Engineering
A domain-specific language for parallel and grid computing
Proceedings of the 2008 AOSD workshop on Domain-specific aspect languages
Parallelization of C# Programs Through Annotations
ICCS '07 Proceedings of the 7th international conference on Computational Science, Part II
Introducing Aspects to the Implementation of a Java Fork/Join Framework
ICA3PP '08 Proceedings of the 8th international conference on Algorithms and Architectures for Parallel Processing
Raising the level of abstraction of application-level checkpointing
Companion to the 23rd ACM SIGPLAN conference on Object-oriented programming systems languages and applications
ACM Transactions on Programming Languages and Systems (TOPLAS)
Computational error handling as aspects: a case study
Proceedings of the 1st workshop on Linking aspect technology and evolution
Proceedings of the 18th ACM international symposium on High performance distributed computing
A join point model for fine-grained aspects
ECC'08 Proceedings of the 2nd conference on European computing conference
Profiler instrumentation using metaprogramming techniques
Proceedings of the 46th Annual Southeast Regional Conference on XX
Parallel dynamic analysis on multicores with aspect-oriented programming
Proceedings of the 9th International Conference on Aspect-Oriented Software Development
Aspect oriented pluggable support for parallel computing
VECPAR'06 Proceedings of the 7th international conference on High performance computing for computational science
Supporting computational systems science: genomic analysis tool federations using aspects and AOP
ISBRA'08 Proceedings of the 4th international conference on Bioinformatics research and applications
Adaptive parallel computing for large-scale distributed and parallel applications
Proceedings of the First International Workshop on Data Dissemination for Large Scale Complex Critical Infrastructures
Incrementally developing parallel applications with AspectJ
IPDPS'06 Proceedings of the 20th international conference on Parallel and distributed processing
Proceedings of the tenth international conference on Aspect-oriented software development
A model-driven framework for aspect weaver construction
Transactions on aspect-oriented software development VIII
A technique for non-invasive application-level checkpointing
The Journal of Supercomputing
Advances in Engineering Software
abc: the aspectbench compiler for aspectJ
GPCE'05 Proceedings of the 4th international conference on Generative Programming and Component Engineering
Modular and non-invasive distributed memory parallelization
Proceedings of the 2012 workshop on Modularity in Systems Software
abc: an extensible AspectJ compiler
Transactions on Aspect-Oriented Software Development I
Proceedings of the 6th Euro American Conference on Telematics and Information Systems
Parallel evolutionary computation in bioinformatics applications
Computer Methods and Programs in Biomedicine
Fine-grained annotations for pointcuts with a finer granularity
Proceedings of the 28th Annual ACM Symposium on Applied Computing
Hi-index | 0.00 |
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.