An Algebraic Framework for Parallelizing Recurrence in Functional Programming

  • Rodrigo C. O. Rocha
  • Luís F. W. Góes
  • Fernando M. Q. Pereira
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 9889)

Abstract

The main challenge faced by automatic parallelization tools in functional languages is the fact that parallelism is often hidden under the syntax of complex recursive functions. In this paper, we propose an algebraic framework for parallelizing – automatically – two special classes of recursive functions. We show that these classes are comprehensive enough to include several well-known instances. We have used our ideas to implement a source-to-source compiler in Python to parallelize Haskell code. We have applied this prototype onto six different recursive functions, achieving, on a 4-core machine, speedups of up to 2.7x.

Keywords

Recursive functions Parallel computing Functional programming Algebraic framework Abstract algebra 

Copyright information

© Springer International Publishing Switzerland 2016

Authors and Affiliations

  • Rodrigo C. O. Rocha
    • 1
    • 2
  • Luís F. W. Góes
    • 1
  • Fernando M. Q. Pereira
    • 2
  1. 1.Institute of Exact Sciences and InformaticsPUC MinasBelo HorizonteBrazil
  2. 2.Department of Computer ScienceUFMGBelo HorizonteBrazil

Personalised recommendations