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...
Main Authors: | , , |
---|---|
Other Authors: | |
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 |