Dynamic parallelization of recursive code

Charlotte Herzeel, Pascal Costanza
2010 Proceedings of the ACM international conference on Object oriented programming systems languages and applications - OOPSLA '10  
While most approaches to automatic parallelization focus on compilation approaches for parallelizing loop iterations, we advocate the need for new virtual machines that can parallelize the execution of recursive programs. In this paper, we show that recursive programs can be effectively parallelized when arguments to procedures are evaluated concurrently and branches of conditional statements are speculatively executed in parallel. We introduce the continuator concept, a runtime structure that
more » ... racks and manages the control dependences between such concurrently spawned tasks, ensuring adherence to the sequential semantics of the parallelized program. As a proof of concept, we discuss the details of a parallel interpreter for Scheme (implemented in Common Lisp) based on these ideas, and show the results from executing the Clinger benchmark suite for Scheme.
doi:10.1145/1869459.1869491 dblp:conf/oopsla/HerzeelC10 fatcat:idxipwjpcfdddfh6dvn3bilcxe