[go: up one dir, main page]
More Web Proxy on the site http://driver.im/ skip to main content
10.1145/2024445.2024447acmconferencesArticle/Chapter ViewAbstractPublication PagesfseConference Proceedingsconference-collections
research-article

Challenges of evolving sequential to parallel code: an exploratory review

Published: 05 September 2011 Publication History

Abstract

Large legacy systems that have been in use for several decades need to evolve in order to take advantage of new technological advances. One such development is the emergence of multi-core processors and parallel platforms. However, the evolution of code written for single-core platforms into code that can take advantage of multi-core technology is challenging. The aim of this research is to explore the challenges that parallel programmers face in the evolution of existing software to exploit multicore and parallel architectures. A review of the current literature was conducted and ten frequently reported challenges were identified. It is important to raise awareness of potential challenges that practitioners may face when evolving sequential code to exploit multicore platforms in order to be better prepared for future evolution. The research community can use these results to develop a research agenda in order to design and develop solutions to address these challenges.

References

[1]
Lehman, M., Programs, life cycles, and laws of software evolution. Proceedings of the IEEE, 1980.
[2]
Tonella, P., M. Torchiano, B. Du Bois, and T. Systä, Empirical studies in reverse engineering: state of the art and future trends. Empirical Software Engineering, 2007. 12(5): p. 551--571.
[3]
Coyle, L., M. Hinchey, B. Nuseibeh, J. Fiadeiro, x0E, and Luiz, Guest Editors' Introduction: Evolving Critical Systems. Computer, 2010. 43(5): p. 28--33.
[4]
Pankratius, V., Software Engineering in the Era of Parallelism, in Emerging research directions in computer science: contributions from the young informatics faculty in Karlsruhe2010.
[5]
Sutter, H., The free lunch is over: A fundamental turn toward concurrency in software, in Dr. Dobb's Journal2005. p. 202--210.
[6]
Vandierendonck, H. and T. Mens, Averting the Next Software Crisis. Computer, 2011. 44(4): p. 88--90.
[7]
Moore, G.E., Cramming More Components Onto Integrated Circuits. Proceedings of the IEEE, 1998. 86(1): p. 82--85.
[8]
Asanovic, K., R. Bodik, and J. Demmel, A view of the parallel computing landscape, in Communications of the ACM 2009.
[9]
Catanzaro, B. and K. Keutzer, Parallel computing with patterns and frameworks, in XRDS: Crossroads, The ACM Magazine for Students2010. p. 22--27.
[10]
Massingill, B.L., T.G. Mattson, and B.A. Sanders, Reengineering for Parallelism: an entry point into PLPP for legacy applications. Concurrency and Computation: Practice and Experience, 2007. 19(4): p. 503--529.
[11]
Sutter, H. and J. Larus, Software and the concurrency revolution, in Queue2005. p. 54--62.
[12]
Kitchenham, B., Guidelines for performing systematic literature reviews in software engineering, in Engineering2007.
[13]
IWPSE-EVOL Study Selection Details. 2011; Available from: http://staff.lero.ie/ameade/iwpse-evol/study.html.
[14]
Wen-mei, H., K. Keutzer, and T.G. Mattson, The Concurrency Challenge. Design & Test of Computers, IEEE, 2008. 25(4): p. 312--320.
[15]
Rajan, H., Building scalable software systems in the multicore era, in Proceedings of the FSE/SDP workshop on Future of software engineering research 2010.
[16]
Eccles, R. and D.A. Stacey, Understanding the parallel programmer, in High-Performance Computing in an Advanced Collaborative Environment, 2006. HPCS 2006. 20th International Symposium on2006. p. 12.
[17]
Goth, G., Entering a parallel universe, in Communications of the ACM2009. p. 15--17.
[18]
Geer, D., For programmers, multicore chips mean multiple challenges, in Computer2007.
[19]
Scott, L.R., T. Clark, and B. Bagheri, Education and research challenges in parallel computing, in Computational Science-ICCS 20052005. p. 44--51.
[20]
Sangani, K., Computing-Two good to be true-Multicore microprocessors may be great for doing lots of things at once, but what about doing one thing more quickly?, in Engineering & Technology2007. p. 40--43.
[21]
Dig, D., A Refactoring Approach to Parallelism. Software, IEEE, 2011. 28(1): p. 17--22.
[22]
Chalabine, M. and C. Kessler. A Survey of Reasoning in Parallelization. in Software Engineering, Artificial Intelligence, Networking, and Parallel/Distributed Computing, 2007. SNPD 2007. Eighth ACIS International Conference on. 2007.
[23]
Marowka, A., Parallel computing on any desktop, in Communications of the ACM2007.
[24]
Keutzer, K., B. Massingill, T. Mattson, and B. Sanders, A Design Pattern Language for Engineering (Parallel) Software: Merging the PLPP and OPL Projects, in ParaPLoP '10: 2nd Annual Conference on Parallel Programming Patterns2010.
[25]
Ramadan, H.E., C.J. Rossbach, and E. Witchel, Dependence-aware transactional memory for increased concurrency, in Proceedings of the 41st annual IEEE/ACM International Symposium on Microarchitecture2008, IEEE Computer Society. p. 246--257.

Cited By

View all
  • (2024)Is This Code the Best? Or Can It Be Further Improved? Developer Stats to the RescueIEEE Access10.1109/ACCESS.2024.347248112(144395-144411)Online publication date: 2024
  • (2024)PyDaskShift: Automatically Convert Loop-Based Sequential Programs to Distributed Parallel ProgramsRecent Advances in Next-Generation Data Science10.1007/978-3-031-67871-4_15(214-234)Online publication date: 23-Aug-2024
  • (2021)Accelerating Spark-Based Applications with MPI and OpenACCComplexity10.1155/2021/99432892021Online publication date: 1-Jan-2021
  • Show More Cited By

Recommendations

Comments

Please enable JavaScript to view thecomments powered by Disqus.

Information & Contributors

Information

Published In

cover image ACM Conferences
IWPSE-EVOL '11: Proceedings of the 12th International Workshop on Principles of Software Evolution and the 7th annual ERCIM Workshop on Software Evolution
September 2011
140 pages
ISBN:9781450308489
DOI:10.1145/2024445
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

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 05 September 2011

Permissions

Request permissions for this article.

Check for updates

Author Tags

  1. challenges
  2. concurrency
  3. evolution
  4. multicore
  5. parallel
  6. program

Qualifiers

  • Research-article

Conference

ESEC/FSE'11
Sponsor:

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)7
  • Downloads (Last 6 weeks)1
Reflects downloads up to 03 Mar 2025

Other Metrics

Citations

Cited By

View all
  • (2024)Is This Code the Best? Or Can It Be Further Improved? Developer Stats to the RescueIEEE Access10.1109/ACCESS.2024.347248112(144395-144411)Online publication date: 2024
  • (2024)PyDaskShift: Automatically Convert Loop-Based Sequential Programs to Distributed Parallel ProgramsRecent Advances in Next-Generation Data Science10.1007/978-3-031-67871-4_15(214-234)Online publication date: 23-Aug-2024
  • (2021)Accelerating Spark-Based Applications with MPI and OpenACCComplexity10.1155/2021/99432892021Online publication date: 1-Jan-2021
  • (2021)Parallel Computing for Multi-core Systems: Current Issues, Challenges and PerspectivesInnovations in Smart Cities Applications Volume 410.1007/978-3-030-66840-2_106(1405-1417)Online publication date: 13-Feb-2021
  • (2018)Finding parallel patterns through static analysis in C++ applicationsInternational Journal of High Performance Computing Applications10.1177/109434201769563932:6(779-788)Online publication date: 1-Nov-2018
  • (2017)Abstraction of information flow and functional dependency from a restructured legacy ‘C’ program for parallelization2017 International Conference On Smart Technologies For Smart Nation (SmartTechCon)10.1109/SmartTechCon.2017.8358389(318-323)Online publication date: Aug-2017
  • (2016)Discovering Pipeline Parallel Patterns in Sequential Legacy C++ CodesProceedings of the 7th International Workshop on Programming Models and Applications for Multicores and Manycores10.1145/2883404.2883411(11-19)Online publication date: 12-Mar-2016
  • (2016)A Parallelization Approach for Hard Real-Time Systems and Its Application on Two Industrial ProgramsInternational Journal of Parallel Programming10.1007/s10766-016-0432-744:6(1296-1336)Online publication date: 1-Dec-2016
  • (2015)Migrating legacy control software to multi-core hardwareProceedings of the 2015 IEEE International Conference on Software Maintenance and Evolution (ICSME)10.1109/ICSM.2015.7332497(458-466)Online publication date: 29-Sep-2015
  • (2014)Paving the way for multi-cores in industrial hard real-time control applicationsProceedings of the 9th IEEE International Symposium on Industrial Embedded Systems (SIES 2014)10.1109/SIES.2014.7087457(1-4)Online publication date: Jun-2014

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