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

For several decades, programmers have relied onMooreâ s Law to improve the performance of their softwareapplications. From now on, programmers need to programthe multi-cores if they want to deliver efficient code. Inthe multi-core era, a major maintenance task will be tomake sequential programs mor...

Full description

Bibliographic Details
Main Authors: Dig, Danny, Marrero, John, Ernst, Michael D.
Other Authors: Michael Ernst
Published: 2008
Subjects:
Online Access:http://hdl.handle.net/1721.1/42832
_version_ 1826209028874698752
author Dig, Danny
Marrero, John
Ernst, Michael D.
author2 Michael Ernst
author_facet Michael Ernst
Dig, Danny
Marrero, John
Ernst, Michael D.
author_sort Dig, Danny
collection MIT
description For several decades, programmers have relied onMooreâ s Law to improve the performance of their softwareapplications. From now on, programmers need to programthe multi-cores if they want to deliver efficient code. Inthe multi-core era, a major maintenance task will be tomake sequential programs more concurrent. What are themost common transformations to retrofit concurrency intosequential programs?We studied the source code of 5 open-source Javaprojects. We analyzed qualitatively and quantitatively thechange patterns that developers have used in order toretrofit concurrency. We found that these transformationsbelong to four categories: transformations that improve thelatency, the throughput, the scalability, or correctness of theapplications. In addition, we report on our experience ofparallelizing one of our own programs. Our findings caneducate software developers on how to parallelize sequentialprograms, and can provide hints for tool vendors aboutwhat transformations are worth automating.
first_indexed 2024-09-23T14:16:31Z
id mit-1721.1/42832
institution Massachusetts Institute of Technology
last_indexed 2024-09-23T14:16:31Z
publishDate 2008
record_format dspace
spelling mit-1721.1/428322019-04-12T09:44:08Z How do programs become more concurrent? A story of program transformations Dig, Danny Marrero, John Ernst, Michael D. Michael Ernst Program Analysis concurrency program transformation refactoring For several decades, programmers have relied onMooreâ s Law to improve the performance of their softwareapplications. From now on, programmers need to programthe multi-cores if they want to deliver efficient code. Inthe multi-core era, a major maintenance task will be tomake sequential programs more concurrent. What are themost common transformations to retrofit concurrency intosequential programs?We studied the source code of 5 open-source Javaprojects. We analyzed qualitatively and quantitatively thechange patterns that developers have used in order toretrofit concurrency. We found that these transformationsbelong to four categories: transformations that improve thelatency, the throughput, the scalability, or correctness of theapplications. In addition, we report on our experience ofparallelizing one of our own programs. Our findings caneducate software developers on how to parallelize sequentialprograms, and can provide hints for tool vendors aboutwhat transformations are worth automating. 2008-09-05T21:00:10Z 2008-09-05T21:00:10Z 2008-09-05 local: MIT-CSAIL-TR-2008-053 http://hdl.handle.net/1721.1/42832 Massachusetts Institute of Technology Computer Science and Artificial Intelligence Laboratory 10 p. application/pdf application/postscript
spellingShingle concurrency
program transformation
refactoring
Dig, Danny
Marrero, John
Ernst, Michael D.
How do programs become more concurrent? A story of program transformations
title How do programs become more concurrent? A story of program transformations
title_full How do programs become more concurrent? A story of program transformations
title_fullStr How do programs become more concurrent? A story of program transformations
title_full_unstemmed How do programs become more concurrent? A story of program transformations
title_short How do programs become more concurrent? A story of program transformations
title_sort how do programs become more concurrent a story of program transformations
topic concurrency
program transformation
refactoring
url http://hdl.handle.net/1721.1/42832
work_keys_str_mv AT digdanny howdoprogramsbecomemoreconcurrentastoryofprogramtransformations
AT marrerojohn howdoprogramsbecomemoreconcurrentastoryofprogramtransformations
AT ernstmichaeld howdoprogramsbecomemoreconcurrentastoryofprogramtransformations