Monday, October 12, 2009

Refactoring for Reentrancy

This paper was the third one on automatically refactoring programs for parallelism. In this case, the tool enabled programmers to change programs to make them reentrant, by removing global references, using lazy initializers and warning about unsafe API calls.

The approach taken by the authors requires that the developer make some changes to optimize the program when finished. The given benchmarks for analyzing the results were far from impressive - some programs ran even slower despite using multiple threads due to the overhead created by the getters and setters. The program could also take substantial time to run.

I think the tool could still be useful in some situations where a program is being refactored with the goal of running several copies simultaneously. I would also have liked more reasoning on why some methods were rejected at the beginning of the paper, such as making an environment block. It requires a lot of code change, but this approach did to, it would be interesting to see them contrasted.

No comments:

Post a Comment