Fine grained parallelism in recursive function calls

  • Authors:
  • Dimitris Saougkos;Aristeidis Mastoras;George Manis

  • Affiliations:
  • Dept. of Computer Science, University of Ioannina, Ioannina, Greece;Dept. of Computer Science, University of Ioannina, Ioannina, Greece;Dept. of Computer Science, University of Ioannina, Ioannina, Greece

  • Venue:
  • PPAM'11 Proceedings of the 9th international conference on Parallel Processing and Applied Mathematics - Volume Part II
  • Year:
  • 2011

Quantified Score

Hi-index 0.00

Visualization

Abstract

Most recursive functions hide a significant degree of inherent parallelism. Much research work has been done in detecting and exploiting this parallelism, mainly by focusing on calls which can be invoked in parallel. However, not all recursive algorithms allow concurrent execution of function calls. In this paper we study how we can extract concurrency from those recursive functions which cannot be parallelized with the commonly used methods. The key idea is to parallelize them in a finer level, using as infrastructure a multi-core, multi-thread architecture. Multi-core architectures give us the opportunity to achieve higher degree of fine grained parallelism than the conventional parallel architectures, by providing real thread level parallelization and low overhead in the communication between different threads. For our experiments we use the SVP processor and model, a novel multi-core architecture which supports threads of execution with rapid communication between "neighboring" threads. The mapping of recursive functions onto the SVP processor is part of a more general framework the C2μTC/SL source to source compiler, developed to support the automatic extraction of parallelism from C programs and the exploitation of the special characteristics of the SVP processor. The experimental results are very encouraging and show satisfactory speedups between the parallel execution and the automatically produced code.