Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
skip to main content
10.1145/2633448.2633453acmconferencesArticle/Chapter ViewAbstractPublication PagesicfpConference Proceedingsconference-collections
research-article

Discovering parallel pattern candidates in Erlang

Published: 03 September 2014 Publication History

Abstract

The ParaPhrase Refactoring Tool for Erlang PaRTE provides automatic, comprehensive and reliable pattern candidate discovery to locate parallelisable components in Erlang programs. It uses semi-automatic and semantics-preserving program transformations to reshape source code and to introduce high level parallel patterns that can be mapped adaptively to the available hardware resources. This paper describes the main PaRTE tools and demonstrates that significant parallel speedups can be obtained.

References

[1]
S. Aronis and K. Sagonas. On Using Erlang for Parallelization: Experience from Parallelizing Dialyzer. Proceedings of the Symposium on Trends in Functional Programming, 2012.
[2]
S. Aronis, N. Papaspyrou, K. Roukounaki, K. Sagonas, Y. Tsiouris, and I. E. Venetis. A Scalability Benchmark Suite for Erlang/OTP. In Proceedings of the eleventh ACM SIGPLAN workshop on Erlang workshop, Erlang '12, pages 33--42, New York, NY, USA, 2012. ACM. ISBN 978-1-4503-1575-3. URL http://doi.acm.org/10.1145/2364489.2364495.
[3]
T. Arts, J. Hughes, J. Johansson, and U. Wiger. Testing telecoms software with quviq quickcheck. In Proceedings of the 2006 ACM SIGPLAN Workshop on Erlang, ERLANG '06, pages 2--10, New York, NY, USA, 2006. ACM. ISBN 1-59593-490-1. 10.1145/1159789.1159792. URL http://doi.acm.org/10.1145/1159789.1159792.
[4]
B. Bacci, M. Danelutto, S. Orlando, S. Pelagatti, and M. Vanneschi. P3L: A structured high level programming language and its structured support. Concurrency Practice and Experience, 7 (3): 225--255, May 1995.
[5]
G. H. Botorog and H. Kuchen. Skil: An Imperative Language with Algorithmic Skeletons for Efficient Distributed Programming. In Proc. of the 5th International Symposium on High Performance Distributed Computing (HPDC'96), pages 243--252. IEEE Computer Society Press, 1996.
[6]
I. Bozó, D. Horpácsi, Z. Horváth, R. Kitlei, J. Kőszegi, M. Tejfel, and M. Tóth. RefactorErl - Source Code Analysis and Refactoring in Erlang. In Proceedings of the 12th Symposium on Programming Languages and Software Tools, pages 138--148, Tallin, Estonia, October 2011. ISBN 978-9949-23-178-2.
[7]
C. Brown. Tool Support for Refactoring Haskell Programs. PhD thesis, Computing Laboratory, University of Kent, Canterbury, Kent, UK, September 2008.
[8]
C. Brown, H. Loidl, and K. Hammond. Paraforming: Forming Haskell Programs using Novel Refactoring Techniques. In Twelth Symposium on Trends in Functional Programming, Madrid, Spain, May 2011.
[9]
C. Brown, M. Danelutto, K. Hammond, P. Kilpatrick, and A. Elliott. Cost-Directed Refactoring for Parallel Erlang Programs. International Journal of Parallel Programming, pages 1--19, 2013. ISSN 0885-7458. URL http://dx.doi.org/10.1007/s10766-013-0266-5.
[10]
C. Brown, V. Janjic, K. Hammond, H. Schöner, K. Idrees, and C. W. Glass. Agricultural Reform: More Efficient Farming Using Advanced Parallel Refactoring Tools. In Proc. PDP '14. IEEE, 2014.
[11]
M. Cole. Algorithmic Skeletons: Structured Management of Parallel Computation. MIT Press, Cambridge, MA, USA, 1991. ISBN 0-262-53086-4.
[12]
M. Cole. Bringing Skeletons out of the Closet: A Pragmatic Manifesto for Skeletal Parallel Programming. Parallel Comput., 30 (3): 389--406, Mar. 2004. ISSN 0167-8191. URL http://dx.doi.org/10.1016/j.parco.2003.12.002.
[13]
J. Darlington, Y. Guo, Y. Jing, and H. W. To. Skeletons for Structured Parallel Composition. In Proc. of the 15th Symposium on Principles and Practice of Parallel Programming, 1995.
[14]
D. Dig. A Refactoring Approach to Parallelism. IEEE Softw., 28: 17--22, 2011. ISSN 0740-7459. http://dx.doi.org/10.1109/MS.2011.1. URL http://dx.doi.org/10.1109/MS.2011.1.
[15]
R. Ferenc, Á. Beszédes, L. Fülöp, and J. Lele. Design Pattern Mining Enhanced by Machine Learning. In Proceedings of the 21st IEEE Int ernational Conference on Software Maintenance (ICSM'05), pages 295--304. IEEE, 2005.
[16]
M. Hamdan, P. King, and G. Michaelson. A Scheme for Nesting Algorithmic Skeletons. In K. Hammond, T. Davie, and C. Clack, editors, Proc. of the 10th International Workshop on the Implementation of Functional Languages (IFL'98), pages 195--211. Department of Computer Science, University College London, 1998.
[17]
C. Hammacher, K. Streit, S. Hack, and A. Zeller. Profiling Java Programs for Parallelism. In Proc. IWMSE '09, pages 49--55, 2009. ISBN 978-1-4244-3718-4. 10.1109/IWMSE.2009.5071383. URL http://dx.doi.org/10.1109/IWMSE.2009.5071383.
[18]
K. Hammond, M. Aldinucci, C. Brown, F. Cesarini, M. Danelutto, H. González-Vélez, P. Kilpatrick, R. Keller, M. Rossbory, and G. Shainer. The ParaPhrase Project: Parallel Patterns for Adaptive Heterogeneous Multicore Systems. In B. Beckert, F. Damiani, F. S. Boer, and M. M. Bonsangue, editors, Formal Methods for Components and Objects, volume 7542 of Lecture Notes in Computer Science, pages 218--236. Springer Berlin Heidelberg, 2013. ISBN 978-3-642-35886-9. URL http://dx.doi.org/10.1007/978-3-642-35887-6_12.
[19]
V. Janjic, A. Barwell, and K. Hammond. Using erlang skeletons to parallelise realistic medium-scale parallel programs. In Proceedings of the Workshop on High-Level Programming for Heterogeneous and Hierarchical Parallel Systems, 2014.
[20]
H. Li and S. Thompson. A User-extensible Refactoring Tool for Erlang Programs. Technical Report 4--11, University of Kent, October 2011. URL http://www.cs.kent.ac.uk/pubs/2011/3171.
[21]
H. Li and S. Thompson. A Domain-specific Language for Scripting Refactorings in Erlang. In Proceedings of the 15th International Conference on Fundamental Approaches to Software Engineering, FASE'12, pages 501--515, Berlin, Heidelberg, 2012. Springer-Verlag. ISBN 978-3-642-28871-5. URL http://dx.doi.org/10.1007/978-3-642-28872-2_34.
[22]
H. Li, S. Thompson, G. Orosz, and M. Tóth. Refactoring with Wrangler, Updated: Data and Process Refactorings, and Integration with Eclipse. In Proceedings of the 7th ACM SIGPLAN Workshop on ERLANG, ERLANG '08, pages 61--72, New York, NY, USA, 2008. ACM. ISBN 978-1-60558-065-4. URL http://doi.acm.org/10.1145/1411273.1411283.
[23]
T. Lindahl and K. Sagonas. TypEr: A Type Annotator of Erlang Code. In Proceedings of the 2005 ACM SIGPLAN Workshop on Erlang, ERLANG '05, pages 17--25, New York, NY, USA, 2005. ACM. ISBN 1-59593-066-3. 10.1145/1088361.1088366. URL http://doi.acm.org/10.1145/1088361.1088366.
[24]
S. A. Markstrum and R. M. Fuhrer. Extracting Concurrency via Refactoring in X10. In Proceedings of the 3rd ACM Workshop on Refactoring Tools, WRT'09, 2009. URL http://refactoring.info/WRT09/#program.
[25]
S. A. Markstrum, R. M. Fuhrer, and T. D. Millstein. Towards Concurrency Refactoring for x10. In Proceedings of the 14th ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming, PPoPP '09, pages 303--304, New York, NY, USA, 2009. ACM. ISBN 978-1-60558-397-6. 10.1145/1504176.1504226. URL http://doi.acm.org/10.1145/1504176.1504226.
[26]
M. McCool, J. Reinders, and A. Robison. Structured Parallel Programming. Morgan Kaufmann, 2012. ISBN 978-0-12-415993-8.
[27]
G. Michaelson, A. Ireland, and P. King. Towards a Skeleton Based Parallelising Compiler for SML. In Proceedings of 9th International Workshop on Implementation of Functional Languages, pages 539--546, 1997.
[28]
K. Molitorisz. Pattern-Based Refactoring Process of Sequential Source Code. In Software Maintenance and Reengineering (CSMR), 2013 17th European Conference on, pages 357--360, March 2013. 10.1109/CSMR.2013.49.
[29]
K. Molitorisz, J. Schimmel, and F. Otto. Automatic Parallelization Using Autofutures. In Proceedings of the 2012 International Conference on Multicore Software Engineering, Performance, and Tools, MSEPT'12, pages 78--81, Berlin, Heidelberg, 2012. Springer-Verlag. ISBN 978-3-642-31201-4. 10.1007/978-3-642-31202-1_8. URL http://dx.doi.org/10.1007/978-3-642-31202-1_8.
[30]
D. Parnas. On the Design and Development of Program Families. Software Engineering, IEEE Transactions on, SE-2 (1): 1--9, March 1976. ISSN 0098-5589. 10.1109/TSE.1976.233797.
[31]
M. Pitidis and K. Sagonas. Purity in Erlang. In Proceedings of the 22Nd International Conference on Implementation and Application of Functional Languages, IFL'10, pages 137--152, Berlin, Heidelberg, 2011. Springer-Verlag. ISBN 978-3-642-24275-5. URL http://dl.acm.org/citation.cfm?id=2050135.2050144.
[32]
RefactorErl Homepage. http://refactorerl.com, 2014.
[33]
S. M. Sadjadi, P. K. McKinley, and B. H. C. Cheng. Transparent Shaping of Existing Software to Support Pervasive and Autonomic Computing. SIGSOFT Softw. Eng. Notes, 30 (4): 1--7, May 2005. ISSN 0163-5948. 10.1145/1082983.1083086. URL http://doi.acm.org/10.1145/1082983.1083086.
[34]
M. Tóth and I. Bozó. Static analysis of complex software systems implemented in Erlang. In Proceedings of the 4th Summer School conference on Central European Functional Programming School, CEFP'11, pages 440--498, Berlin, Heidelberg, 2012. Springer-Verlag. ISBN 978-3-642-32095-8. URL http://dx.doi.org/10.1007/978-3-642-32096-5_9.
[35]
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. http://doi.acm.org/10.1145/1595696.1595723. URL http://doi.acm.org/10.1145/1595696.1595723.

Cited By

View all
  • (2020)Improving the Performance of Actors on Multi-cores with Parallel PatternsInternational Journal of Parallel Programming10.1007/s10766-020-00663-1Online publication date: 4-Jun-2020
  • (2019)Accelerating Actor-Based Applications with Parallel Patterns2019 27th Euromicro International Conference on Parallel, Distributed and Network-Based Processing (PDP)10.1109/EMPDP.2019.8671602(140-147)Online publication date: Feb-2019
  • (2019)Refactoring for introducing and tuning parallelism for heterogeneous multicore machines in ErlangConcurrency and Computation: Practice and Experience10.1002/cpe.542033:14Online publication date: 24-Jun-2019
  • Show More Cited By

Recommendations

Comments

Information & Contributors

Information

Published In

cover image ACM Conferences
Erlang '14: Proceedings of the Thirteenth ACM SIGPLAN workshop on Erlang
September 2014
84 pages
ISBN:9781450330381
DOI:10.1145/2633448
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 the author(s) 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: 03 September 2014

Permissions

Request permissions for this article.

Check for updates

Author Tags

  1. concurrency
  2. erlang
  3. parallelism
  4. paraphrase
  5. patterns
  6. refactoring
  7. skeletons

Qualifiers

  • Research-article

Conference

ICFP'14
Sponsor:

Acceptance Rates

Erlang '14 Paper Acceptance Rate 9 of 14 submissions, 64%;
Overall Acceptance Rate 51 of 68 submissions, 75%

Upcoming Conference

ICFP '25
ACM SIGPLAN International Conference on Functional Programming
October 12 - 18, 2025
Singapore , Singapore

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)2
  • Downloads (Last 6 weeks)2
Reflects downloads up to 12 Feb 2025

Other Metrics

Citations

Cited By

View all
  • (2020)Improving the Performance of Actors on Multi-cores with Parallel PatternsInternational Journal of Parallel Programming10.1007/s10766-020-00663-1Online publication date: 4-Jun-2020
  • (2019)Accelerating Actor-Based Applications with Parallel Patterns2019 27th Euromicro International Conference on Parallel, Distributed and Network-Based Processing (PDP)10.1109/EMPDP.2019.8671602(140-147)Online publication date: Feb-2019
  • (2019)Refactoring for introducing and tuning parallelism for heterogeneous multicore machines in ErlangConcurrency and Computation: Practice and Experience10.1002/cpe.542033:14Online publication date: 24-Jun-2019
  • (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
  • (2018)Making Break-ups Less PainfulProceedings of the 2018 Workshop on Forming an Ecosystem Around Software Transformation10.1145/3273045.3273046(14-19)Online publication date: 15-Oct-2018
  • (2018)Special section on functional paradigm for high performance computingFuture Generation Computer Systems10.1016/j.future.2017.09.03579(643-644)Online publication date: Feb-2018
  • (2018)Finding parallel functional pearlsFuture Generation Computer Systems10.1016/j.future.2017.07.02479:P2(669-686)Online publication date: 1-Feb-2018
  • (2018)Free the Conqueror! Refactoring divide-and-conquer functionsFuture Generation Computer Systems10.1016/j.future.2017.05.01179:P2(687-699)Online publication date: 1-Feb-2018
  • (2018)Assessing and discovering parallelism in C$$++$$++ code for heterogeneous platformsThe Journal of Supercomputing10.1007/s11227-016-1794-874:11(5674-5689)Online publication date: 1-Nov-2018
  • (2017)Pattern Candidate Discovery and Parallelization TechniquesProceedings of the 29th Symposium on the Implementation and Application of Functional Programming Languages10.1145/3205368.3205369(1-26)Online publication date: 30-Aug-2017
  • Show More Cited By

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