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

Download: PDF, PostScript.

“How do programs become more concurrent? A story of program transformations” by Danny Dig, John Marrero, and Michael D. Ernst. MIT Computer Science and Artificial Intelligence Laboratory technical report MIT-CSAIL-TR-2008-053, (Cambridge, MA), September 5, 2008.


For several decades, programmers have relied on Moore's Law to improve the performance of their software applications. From now on, programmers need to program the multi-cores if they want to deliver efficient code. In the multi-core era, a major maintenance task will be to make sequential programs more concurrent. What are the most common transformations to retrofit concurrency into sequential programs? We studied the source code of 5 open-source Java projects. We analyzed qualitatively and quantitatively the change patterns that developers have used in order to retrofit concurrency. We found that these transformations belong to four categories: transformations that improve the latency, the throughput, the scalability, or correctness of the applications. In addition, we report on our experience of parallelizing one of our own programs. Our findings can educate software developers on how to parallelize sequential programs, and can provide hints for tool vendors about what transformations are worth automating.

Download: PDF, PostScript.

BibTeX entry:

   author = {Danny Dig and John Marrero and Michael D. Ernst},
   title = {How do programs become more concurrent? A story of program
   institution = {MIT Computer Science and Artificial Intelligence Laboratory},
   number = {MIT-CSAIL-TR-2008-053},
   address = {Cambridge, MA},
   month = {September~5,},
   year = {2008}

(This webpage was created with bibtex2web.)

Back to Program Analysis Group publications.