Parallel dynamic analysis on multicores with aspect-oriented programming

  • Authors:
  • Danilo Ansaloni;Walter Binder;Alex Villazón;Philippe Moret

  • Affiliations:
  • University of Lugano, Switzerland;University of Lugano, Switzerland;University of Lugano, Switzerland;University of Lugano, Switzerland

  • Venue:
  • Proceedings of the 9th International Conference on Aspect-Oriented Software Development
  • Year:
  • 2010

Quantified Score

Hi-index 0.01

Visualization

Abstract

In most aspects, advice are synchronously executed by application threads, which may cause high overhead if advice execution is frequent or computationally expensive. When synchronous advice execution is not a necessity, asynchronous advice execution has the potential to parallelize program and advice execution on multicores. However, asynchronous advice execution requires communication between threads, causing some overhead. In order to mitigate such overhead, we introduce buffered advice, a new AOP mechanism for aggregating advice invocations in a thread-local buffer, which is processed when it is full. For asynchronous processing of full buffers, the communication overhead is paid only once per buffer, instead of once per advice invocation. We present an enhanced AOP programming model and framework based on AspectJ, which ease the use of buffered advice and support pluggable, custom buffer processing strategies. As case study, we optimize an existing aspect for data race detection using buffered advice. A thorough evaluation with standard benchmarks confirms that the use of buffered advice yields significant speedup on multicores.