How do programs become more concurrent? A story of program transformations

Download: PDF.

“How do programs become more concurrent? A story of program transformations” by Danny Dig, John Marrero, and Michael D. Ernst. In Proceedings of the 4th International Workshop on Multicore Software Engineering, (Waikiki, Hawaii, USA), May 2011, pp. 43-50.
A previous version appeared as MIT Computer Science and Artificial Intelligence Laboratory technical report MIT-CSAIL-TR-2008-053, (Cambridge, MA), September 5, 2008.

Abstract

In the multi-core era, programmers need to resort to parallelism if they want to improve program performance. Thus, a major maintenance task will be to make sequential programs more concurrent. Must concurrency be designed into a program, or can it be retrofitted later? What are the most common transformations to retrofit concurrency into sequential programs? Are these transformations random, or do they belong to certain categories? How can we automate these transformations?

To answer these questions we analyzed the source code of five open-source Java projects and looked at a total of 14 versions. We analyzed qualitatively and quantitatively the concurrency-related transformations. We found that these transformations belong to four categories: transformations that improve the responsiveness, the throughput, the scalability, or correctness of the applications. In 73.9% of these transformations, concurrency was retrofitted on existing program elements. In 20.5% of the transformations, concurrency was designed into new program elements. Our findings educate software developers on how to parallelize sequential programs, and provide hints for tool vendors about what transformations are worth automating.

Download: PDF.

BibTeX entry:

@inproceedings{DigME2011,
   author = {Danny Dig and John Marrero and Michael D. Ernst},
   title = {How do programs become more concurrent? A story of program
	transformations},
   booktitle = {Proceedings of the 4th International Workshop on Multicore
	Software Engineering},
   pages = {43--50},
   address = {Waikiki, Hawaii, USA},
   month = may,
   year = {2011}
}

(This webpage was created with bibtex2web.)

Back to Michael Ernst's publications.