skip to main content
10.1145/2328876.2328884acmotherconferencesArticle/Chapter ViewAbstractPublication PagessplashConference Proceedingsconference-collections
short-paper

A language-independent parallel refactoring framework

Published: 01 June 2012 Publication History

Abstract

Recent trends towards increasingly parallel computers mean that there needs to be a seismic shift in programming practice. The time is rapidly approaching when most programming will be for parallel systems. However, most programming techniques in use today are geared towards sequential, or occasionally small-scale parallel, programming. While refactoring has so far mainly been applied to sequential programs, it is our contention that refactoring can play a key role in significantly improving the programmability of parallel systems, by allowing the programmer to apply a set of well-defined transformations in order to parallelise their programs. In this paper, we describe a new language-independent refactoring approach that helps introduce and tune parallelism through high-level design patterns targeting a set of well-specified parallel skeletons. We believe this new refactoring process is the key to allowing programmers to truly start thinking in parallel.

References

[1]
T. Arts, L. M. Castro, and J. Hughes. Testing Erlang Data Types with Quviq QuickCheck. In Proceedings of 7th ACM SIGPLAN Erlang Workshop (Erlang'08). Victoria, British Columbia, Canada. September 27, 2008., pages 1--8. Association for Computing Machinery (ACM), September 2008. ISBN 978-1-60558-065-4.
[2]
C. Brown, H. Loidl, and K. Hammond. Paraforming: Forming Parallel Haskell Programs using Novel Refactoring Techniques. In Twelth Symposium on Trends in Functional Programming, Madrid, Spain, May 2011.
[3]
D. Dig, J. Marrero, and M. D. Ernst. Refactoring Sequential Java Code for Concurrency via Concurrent Libraries. In ICSE'09, Proceedings of the 31st International Conference on Software Engineering, Vancouver, BC, Canada, May 20--22, 2009.
[4]
D. Dig, M. Tarce, C. Radoi, M. Minea, and R. Johnson. Relooper: Refactoring for Loop Parallelism in Java. In Proceedings of the 24th ACM SIGPLAN conference companion on Object oriented programming systems languages and applications, OOPSLA '09, pages 793--794, New York, NY, USA, 2009. ACM. ISBN 978-1-60558-768-4. URL http://doi.acm.org/10.1145/1639950.1640018.
[5]
K. Hammond, M. Aldinucci, C. Brown, F. Cesarini, M. Danelutto, H. Gonzalez-Velez, P. Kilpatrick, R. Keller, N. T., and G. Shainer. The ParaPhrase Project: Parallel Patterns for Adaptive Heterogeneous Multicore Systems. FMCO 2012. Submitted, February 2012.
[6]
F. Kjolstad, D. Dig, G. Acevedo, and M. Snir. Transformation for class immutability. In Proceedings of the 33rd International Conference on Software Engineering, ICSE '11, pages 61--70, New York, NY, USA, 2011. ACM. ISBN 978-1-4503-0445-0. URL http://doi.acm.org/10.1145/1985793.1985803.
[7]
H. Li and S. Thompson. A Comparative Study of Refactoring Haskell and Erlang Programs. In M. D. Penta and L. Moonen, editors, Sixth IEEE International Workshop on Source Code Analysis and Manipulation (SCAM 2006), pages 197--206. IEEE, September 2006. ISBN 0-7695-2353-6.
[8]
T. Mens and T. Tourwé. A Survey of Software Refactoring. IEEE Trans. Softw. Eng., 30(2):126--139, 2004. ISSN 0098-5589.
[9]
J. O'Donnell and G. Rnger. A Methodology for Deriving Parallel Programs with a Family of Parallel Abstract Machines. In Euro-Par'97 Parallel Processing, volume 1300 of LNCS, pages 662--669. Springer, 1997.
[10]
M. Schäfer, M. Sridharan, J. Dolby, and F. Tip. Refactoring Java Programs for Flexible Locking. In Proceedings of the 33rd International Conference on Software Engineering, ICSE '11, pages 71-80, New York, NY, USA, 2011. ACM. ISBN 978-1-4503-0445-0. URL http://doi.acm.org/10.1145/1985793.1985804.
[11]
D. Smith. Readings in Artificial Intelligence and Software Engineering. chapter Top-down Synthesis of Divide-and-Conquer Algorithms, pages 35--61. Morgan Kaufmann Publishers Inc., San Francisco, CA, USA, 1986. ISBN 0-934613-12-5. URL http://dl.acm.org/citation.cfm?id=31870.31872.
[12]
D. R. Smith. Applications of a Strategy for Designing Divide-and-Conquer Algorithms. Sci. Comput. Program., 8 (3):213--229, June 1987. ISSN 0167-6423. URL http://dx.doi.org/10.1016/0167-6423(87)90034-7.
[13]
J. Wloka, M. Sridharan, and F. Tip. Refactoring for Reentrancy. In ESEC/FSE '09, pages 173--182, Amsterdam, 2009. ACM. ISBN 978-1-60558-001-2.

Cited By

View all
  • (2020)A survey of concurrency-oriented refactoringConcurrent Engineering10.1177/1063293X2095893228:4(319-330)Online publication date: 8-Oct-2020
  • (2019)Code Refactoring from OpenMP to MapReduce Model for Big Data Processing2019 IEEE SmartWorld, Ubiquitous Intelligence & Computing, Advanced & Trusted Computing, Scalable Computing & Communications, Cloud & Big Data Computing, Internet of People and Smart City Innovation (SmartWorld/SCALCOM/UIC/ATC/CBDCom/IOP/SCI)10.1109/SmartWorld-UIC-ATC-SCALCOM-IOP-SCI.2019.00186(930-935)Online publication date: Aug-2019
  • (2018)Automatically deriving cost models for structured parallel processes using hylomorphismsFuture Generation Computer Systems10.1016/j.future.2017.04.03579:P2(653-668)Online publication date: 1-Feb-2018
  • Show More Cited By

Recommendations

Comments

Information & Contributors

Information

Published In

cover image ACM Other conferences
WRT '12: Proceedings of the Fifth Workshop on Refactoring Tools
June 2012
69 pages
ISBN:9781450315005
DOI:10.1145/2328876
  • Conference Chair:
  • Peter Sommerlad
Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

Sponsors

  • ICSE: International Conference on Software Engineering
  • SWEN: SWEN - Software Engineering Network

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 01 June 2012

Permissions

Request permissions for this article.

Check for updates

Author Tags

  1. C/C++
  2. Erlang
  3. ParaPhrase
  4. concurrency
  5. parallelism
  6. patterns
  7. refactoring
  8. skeletons

Qualifiers

  • Short-paper

Funding Sources

Conference

WRT '12
Sponsor:
  • ICSE
  • SWEN
WRT '12: Fifth Workshop on Refactoring Tools 2012
June 1, 2012
Rapperswil, Switzerland

Acceptance Rates

Overall Acceptance Rate 9 of 9 submissions, 100%

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)2
  • Downloads (Last 6 weeks)0
Reflects downloads up to 05 Mar 2025

Other Metrics

Citations

Cited By

View all
  • (2020)A survey of concurrency-oriented refactoringConcurrent Engineering10.1177/1063293X2095893228:4(319-330)Online publication date: 8-Oct-2020
  • (2019)Code Refactoring from OpenMP to MapReduce Model for Big Data Processing2019 IEEE SmartWorld, Ubiquitous Intelligence & Computing, Advanced & Trusted Computing, Scalable Computing & Communications, Cloud & Big Data Computing, Internet of People and Smart City Innovation (SmartWorld/SCALCOM/UIC/ATC/CBDCom/IOP/SCI)10.1109/SmartWorld-UIC-ATC-SCALCOM-IOP-SCI.2019.00186(930-935)Online publication date: Aug-2019
  • (2018)Automatically deriving cost models for structured parallel processes using hylomorphismsFuture Generation Computer Systems10.1016/j.future.2017.04.03579:P2(653-668)Online publication date: 1-Feb-2018
  • (2018)A systematic literature review: Refactoring for disclosing code smells in object oriented softwareAin Shams Engineering Journal10.1016/j.asej.2017.03.0029:4(2129-2151)Online publication date: Dec-2018
  • (2015)An empirical study on parallelism in modern open-source projectsProceedings of the 2nd International Workshop on Software Engineering for Parallel Systems10.1145/2837476.2837481(35-44)Online publication date: 27-Oct-2015
  • (2014)Cost-Directed Refactoring for Parallel Erlang ProgramsInternational Journal of Parallel Programming10.5555/2630180.263019042:4(564-582)Online publication date: 1-Aug-2014
  • (2014)Agricultural ReformProceedings of the 2014 22nd Euromicro International Conference on Parallel, Distributed, and Network-Based Processing10.1109/PDP.2014.94(36-43)Online publication date: 12-Feb-2014
  • (2014)Refactoring Java Concurrent Programs Based on Synchronization Requirement AnalysisProceedings of the 2014 IEEE International Conference on Software Maintenance and Evolution10.1109/ICSME.2014.58(361-370)Online publication date: 29-Sep-2014
  • (2013)Finding shrink critical section refactoring opportunities for the evolution of concurrent code in trustworthy softwareScience China Information Sciences10.1007/s11432-012-4743-z56:1(1-20)Online publication date: 22-Jan-2013
  • (2013)Cost-Directed Refactoring for Parallel Erlang ProgramsInternational Journal of Parallel Programming10.1007/s10766-013-0266-542:4(564-582)Online publication date: 3-Sep-2013

View Options

Login options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Figures

Tables

Media

Share

Share

Share this Publication link

Share on social media