Efficient Parallel Execution of Irregular Recursive Programs

  • Authors:
  • Lutz Prechelt;Stefan U. Hánßgen

  • Affiliations:
  • abaXX Technology, Stuttgart, Germany;GINIT, Germany

  • Venue:
  • IEEE Transactions on Parallel and Distributed Systems
  • Year:
  • 2002

Quantified Score

Hi-index 0.00

Visualization

Abstract

Programs whose parallelism stems from multiple recursion form an interesting subclass of parallel programs with many practical applications. The highly irregular shape of many recursion trees makes it difficult to obtain good load balancing with small overhead. We present a system, called REAPAR, that executes recursive C programs in parallel on SMP machines. Based on data from a single profiling run of the program, REAPAR selects a load-balancing strategy that is both effective and efficient and it generates parallel code implementing that strategy. The performance obtained by REAPAR on a diverse set of benchmarks matches that published for much more complex systems requiring high-level problem-oriented explicitly parallel constructs. A case study even found REAPAR to be competitive to handwritten (low-level, machine-oriented) thread-parallel code.