Abstract
We propose program analyses to identify parallelizable code fragments, and program transformations to change those fragments into applications of high-level parallel patterns. The methodology has been worked out, and is presented here, in the context of the Erlang programming language, but the approach is applicable in other languages as well.
This work has been supported by the European Union Framework 7 under contract no. 288570. ParaPhrase: Parallel Patterns for Adaptive Heterogeneous Multi-core System.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
References
Hammond, K., Aldinucci, M., Brown, C., Cesarini, F., Danelutto, M., González-Vélez, H., Kilpatrick, P., Keller, R., Rossbory, M., Shainer, G.: The ParaPhrase project: parallel patterns for adaptive heterogeneous multicore systems. In: Beckert, B., Bonsangue, M.M. (eds.) FMCO 2011. LNCS, vol. 7542, pp. 218–236. Springer, Heidelberg (2013)
Bozó, I., Fördős, V., Horváth, Z., Tóth, M., Horpácsi, D., Kozsik, T., Kőszegi, J., Barwell, A., Brown, C., Hammond, K.: Discovering parallel pattern candidates in erlang. In: Proceedings of the Thirteenth ACM SIGPLAN Workshop on Erlang, Erlang 2014, pp. 13–23. ACM, New York (2014)
Skel Tutorial (2014), http://chrisb.host.cs.st-andrews.ac.uk/skel-test-master/tutorial/bin/tutorial.html
The ParaPhrase project (2014), http://www.paraphrase-ict.eu
Cole, M.: Algorithmic Skeletons: Structured Management of Parallel Computation. MIT Press, Cambridge (1991)
Brown, C., Danelutto, M., Hammond, K., Kilpatrick, P., Elliot, A.: Cost-directed refactoring for parallel erlang programs. Int’l J. of Parallel Programming (2013)
Brown, C., Janjic, V., Hammond, K., Goli, M., McCall, J.: Bridging the divide: intelligent mapping for the heterogeneous parallel programmer. In: ICPP 2013 (2013)
Tóth, M., Bozó, I.: Static analysis of complex software systems implemented in Erlang. In: Zsók, V., Horváth, Z., Plasmeijer, R. (eds.) CEFP. LNCS, vol. 7241, pp. 440–498. Springer, Heidelberg (2012)
Hammacher, C., Streit, K., Hack, S., Zeller, A.: Profiling java programs for parallelism. In: Proc. IWMSE 2009, pp. 49–55 (2009)
Markstrum, S.A., Fuhrer, R.M.: Extracting concurrency via refactoring in X10. In: Proceedings of the 3rd ACM Workshop on Refactoring Tools, WRT 2009 (2009)
Markstrum, S.A., Fuhrer, R.M., Millstein, T.D.: Towards concurrency refactoring for x10. In: Proceedings of the 14th ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming, PPoPP 2009, pp. 303–304. ACM, New York (2009)
Wloka, J., Sridharan, M., Tip, F.: Refactoring for reentrancy. In: ESEC/FSE 2009, pp. 173–182. ACM, Amsterdam (2009)
Molitorisz, K.: Pattern-based refactoring process of sequential source code. In: 2013 17th European Conference on Software Maintenance and Reengineering (CSMR), March 2013, pp. 357–360 (2013)
Molitorisz, K., Schimmel, J., Otto, F.: Automatic parallelization using autofutures. In: Pankratius, V., Philippsen, M. (eds.) MSEPT 2012. LNCS, vol. 7303, pp. 78–81. Springer, Heidelberg (2012)
Dig, D.: A Refactoring Approach to Parallelism. IEEE Softw. 28, 17–22 (2011)
Dig, D., Marrero, J., Ernst, M.D.: How do programs become more concurrent: A story of program transformations. In: Proceedings of the 4th International Workshop on Multicore Software Engineering, IWMSE 2011, pp. 43–50. ACM, New York (2011)
Dig, D., Marrero, J., Ernst, M.D.: Refactoring sequential java code for concurrency via concurrent libraries. In: Proceedings of the 31st International Conference on Software Engineering, ICSE 2009, pp. 397–407. IEEE Computer Society, Washington (2009)
Mak, J., Faxén, K.-F., Janson, S., Mycroft, A.: Estimating and exploiting potential parallelism by source-level dependence profiling. In: D’Ambra, P., Guarracino, M., Talia, D. (eds.) Euro-Par 2010, Part I. LNCS, vol. 6271, pp. 26–37. Springer, Heidelberg (2010)
Cole, M.: Bringing Skeletons out of the Closet: A Pragmatic Manifesto for Skeletal Parallel Programming. Parallel Comput. 30(3), 389–406 (2004)
Darlington, J., Guo, Y., Jing, Y., To, H.W.: Skeletons for structured parallel composition. In: Proc. of the 15th Symposium on Principles and Practice of Parallel Programming (1995)
Brown, C., Janjic, V., Hammond, K., Schöner, H., Idrees, K., Glass, C.W.: Agricultural reform: more efficient farming using advanced parallel refactoring tools. In: Proc. PDP 2014. IEEE (2014)
Aronis, S., Sagonas, K.: On using erlang for parallelization: experience from parallelizing dialyzer. In: Proceedings of the Symposium on Trends in Functional Programming (2012)
Aronis, S., Papaspyrou, N., Roukounaki, K., Sagonas, K., Tsiouris, Y., Venetis, I.E.: A scalability benchmark suite for Erlang/OTP. In: Proc. of 11th ACM SIGPLAN Workshop on Erlang, pp. 33–42. ACM, New York (2012)
Brown, C., Loidl, H., Hammond, K.: Paraforming: forming haskell programs using novel refactoring techniques. In: Twelth Symposium on Trends in Functional Programming, May 2011. Madrid, Spain (2011)
Michaelson, G., Ireland, A., King, P.: Towards a skeleton based parallelising compiler for SML. In: Proceedings of 9th International Workshop on Implementation of Functional Languages, pp. 539–546 (1997)
Author information
Authors and Affiliations
Corresponding author
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2015 Springer International Publishing Switzerland
About this paper
Cite this paper
Bozó, I. et al. (2015). Refactorings to Enable Parallelization. In: Hage, J., McCarthy, J. (eds) Trends in Functional Programming. TFP 2014. Lecture Notes in Computer Science(), vol 8843. Springer, Cham. https://doi.org/10.1007/978-3-319-14675-1_7
Download citation
DOI: https://doi.org/10.1007/978-3-319-14675-1_7
Published:
Publisher Name: Springer, Cham
Print ISBN: 978-3-319-14674-4
Online ISBN: 978-3-319-14675-1
eBook Packages: Computer ScienceComputer Science (R0)