Skip to main content

Fine Grained Parallelism in Recursive Function Calls

  • Conference paper
Book cover Parallel Processing and Applied Mathematics (PPAM 2011)

Part of the book series: Lecture Notes in Computer Science ((LNTCS,volume 7204))

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.

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 39.99
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 54.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. Ahn, J., Han, T.: An analytical method for parallelization of recursive functions. Parallel Processing Letters, 87–98 (2000)

    Google Scholar 

  2. Bernard, T., Bousias, K., Guang, L., Jesshope, C., Lankamp, M., van Tol, M., Zhang, L.: A general model of concurrency and its implementation as many-core dynamic RISC processors. In: Proc. of SAMOS 2008, Samos, Greece (2008)

    Google Scholar 

  3. Collins, R.L., Vellore, B., Carloni, L.P.: Recursion-driven parallel code generation for multi-core platforms. In: Design, Automation and Test in Europe, DATE (2010)

    Google Scholar 

  4. Gupta, M., Mukhopadhyay, S., Sinha, N.: Automatic parallelization of recursive procedures. Int. J. Parallel Program. 28(6), 537–562 (2000)

    Article  Google Scholar 

  5. Harrison, W.L.: The interprocedural analysis and automatic parallelization of Scheme programs. LISP and Symbolic Computation 1(1), 35–47 (1990)

    Google Scholar 

  6. Jesshope, C., Lankamp, M., Zhang, L.: The implementation of an SVP many-core processor and the evaluation of its memory architecture. SIGARCH Comput. Archit. News 37, 38–45 (2009)

    Article  Google Scholar 

  7. Jesshope, C.R.: μTC - an intermediate language for programming chip multiprocessors. In: Proc. of Pacific Computer Systems Architecture Conference 2006, Shanghai, China (2006)

    Google Scholar 

  8. Morihata, A., Matsuzaki, K.: Automatic Parallelization of Recursive Functions Using Quantifier Elimination. In: Blume, M., Kobayashi, N., Vidal, G. (eds.) FLOPS 2010. LNCS, vol. 6009, pp. 321–336. Springer, Heidelberg (2010)

    Chapter  Google Scholar 

  9. Rugina, R., Rinard, M.: Automatic parallelization of divide and conquer algorithms. In: PPoPP 1999: Proceedings of the Seventh ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming, pp. 72–83 (1999)

    Google Scholar 

  10. Saougkos, D., Manis, G.: Specifying loop transformations for C2μTC source to source compiler. In: Proc. of Compilers for Parallel Computers, Zurich, Switzerland (2009)

    Google Scholar 

  11. Saougkos, D., Manis, G.: Run–time scheduling with the C2μTC/SL parallelizing compiler. In: Proc. of 2nd Workshop on Parallel Programming and Run–Time Management Techniques for Many-core Architectures, Como, Italy (2011)

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2012 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Saougkos, D., Mastoras, A., Manis, G. (2012). Fine Grained Parallelism in Recursive Function Calls. In: Wyrzykowski, R., Dongarra, J., Karczewski, K., Waśniewski, J. (eds) Parallel Processing and Applied Mathematics. PPAM 2011. Lecture Notes in Computer Science, vol 7204. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-642-31500-8_13

Download citation

  • DOI: https://doi.org/10.1007/978-3-642-31500-8_13

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-642-31499-5

  • Online ISBN: 978-3-642-31500-8

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics