TY - GEN
T1 - An aspect pointcut for parallelizable loops
AU - Dean, John S.
AU - Mitropoulos, Frank J.
PY - 2014
Y1 - 2014
N2 - In this paper, we describe the design and implementation of a parallelizable loop pointcut for an aspect-oriented compiler. Prior to this study, several prototype solutions existed for loop pointcuts, but the solutions were not very granular. In particular, they were not able to differentiate between loops that are parallelizable and those that are not. Being able to identify parallelizable loops automatically, as part of an aspect-oriented compiler, is particularly important because (1) manually identifying parallelizable loops is known to be a difficult problem and (2) aspectizing parallelized loops can lead to a reduction in code tangling and an increase in separation of concerns. Identifying parallelizable loops is known to be a difficult problem, and as such, this study's parallelizable loop pointcut implements a heuristic solution. Thus, the pointcut identifies many parallelizable loops as being parallelizable, but not all. For two test programs where the pointcut was unable to identify parallelizable loops, the inability to detect parallelizability was, surprisingly, somewhat beneficial. When those programs' loops ran in parallel (as part of a non-aspect-oriented program), their calculated results were slightly different from the known theoretical results, but when run sequentially (with the aspect-oriented compiler), the calculated results matched the known theoretical results.
AB - In this paper, we describe the design and implementation of a parallelizable loop pointcut for an aspect-oriented compiler. Prior to this study, several prototype solutions existed for loop pointcuts, but the solutions were not very granular. In particular, they were not able to differentiate between loops that are parallelizable and those that are not. Being able to identify parallelizable loops automatically, as part of an aspect-oriented compiler, is particularly important because (1) manually identifying parallelizable loops is known to be a difficult problem and (2) aspectizing parallelized loops can lead to a reduction in code tangling and an increase in separation of concerns. Identifying parallelizable loops is known to be a difficult problem, and as such, this study's parallelizable loop pointcut implements a heuristic solution. Thus, the pointcut identifies many parallelizable loops as being parallelizable, but not all. For two test programs where the pointcut was unable to identify parallelizable loops, the inability to detect parallelizability was, surprisingly, somewhat beneficial. When those programs' loops ran in parallel (as part of a non-aspect-oriented program), their calculated results were slightly different from the known theoretical results, but when run sequentially (with the aspect-oriented compiler), the calculated results matched the known theoretical results.
KW - Aspect-oriented programming
KW - Loop pointcut
KW - Parallelizable loops
UR - https://www.scopus.com/pages/publications/84905671251
UR - https://www.scopus.com/pages/publications/84905671251#tab=citedBy
U2 - 10.1145/2554850.2554917
DO - 10.1145/2554850.2554917
M3 - Conference contribution
AN - SCOPUS:84905671251
SN - 9781450324694
T3 - Proceedings of the 29th Annual ACM Symposium on Applied Computing
SP - 1619
EP - 1624
BT - Proceedings of the 29th Annual ACM Symposium on Applied Computing, SAC 2014
PB - Association for Computing Machinery (ACM)
T2 - 29th Annual ACM Symposium on Applied Computing, SAC 2014
Y2 - 24 March 2014 through 28 March 2014
ER -