Automatic parallelization of divide and conquer algorithms
Proceedings of the seventh ACM SIGPLAN symposium on Principles and practice of parallel programming
Automatic parallelization of recursive procedures
International Journal of Parallel Programming - Special issue on parallel architectures and compilation techniques
The implementation of an SVP many-core processor and the evaluation of its memory architecture
ACM SIGARCH Computer Architecture News
Recursion-driven parallel code generation for multi-core platforms
Proceedings of the Conference on Design, Automation and Test in Europe
µTC: an intermediate language for programming chip multiprocessors
ACSAC'06 Proceedings of the 11th Asia-Pacific conference on Advances in Computer Systems Architecture
Automatic parallelization of recursive functions using quantifier elimination
FLOPS'10 Proceedings of the 10th international conference on Functional and Logic Programming
Hi-index | 0.00 |
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.