Automatic Parallelization of Recursive Procedures

Automatic Parallelization of Recursive Procedures
Author: International Business Machines Corporation. Research Division
Publisher:
Total Pages: 14
Release: 1998
Genre: Compilers (Computer programs)
ISBN:

Abstract: "Parallelizing compilers have traditionally focussed mainly on parallelizing loops. This paper presents a new framework for automatically parallelizing recursive procedures that typically appear in divide-and-conquer style algorithms. We present compile-time analysis to detect the independence of multiple recursive calls in a procedure. This allows exploitation of a scalable form of nested parallelism, where each parallel task can further spawn off parallel work in subsequent recursive calls. We describe a run-time system which efficiently supports this kind of nested parallelism without unnecessarily blocking tasks, and facilitates load-balancing. We have implemented this framework in a parallelizing compiler for C and Fortran 90. We believe it is the first compiler which is able to automatically parallelize programs like quicksort and mergesort. For cases where even the advanced symbolic analysis and array section analysis we describe are not able to prove the independence of procedure calls, we propose novel techniques for speculative run-time parallelization, which are significantly more efficient and powerful than analogous techniques proposed previously for speculatively parallelizing loops. Our experimental results on an IBM G30 SMP machine show good speedups obtained by following our approach."

Parallel Processing and Applied Mathematics, Part II

Parallel Processing and Applied Mathematics, Part II
Author: Roman Wyrzykowski
Publisher: Springer
Total Pages: 687
Release: 2012-07-04
Genre: Computers
ISBN: 3642315003

This two-volume-set (LNCS 7203 and 7204) constitutes the refereed proceedings of the 9th International Conference on Parallel Processing and Applied Mathematics, PPAM 2011, held in Torun, Poland, in September 2011. The 130 revised full papers presented in both volumes were carefully reviewed and selected from numerous submissions. The papers address issues such as parallel/distributed architectures and mobile computing; numerical algorithms and parallel numerics; parallel non-numerical algorithms; tools and environments for parallel/distributed/grid computing; applications of parallel/distributed computing; applied mathematics, neural networks and evolutionary computing; history of computing.

Compiler-assisted Workload Consolidation to Efficiently Exploit Dynamic Parallelism for Recursive Applications

Compiler-assisted Workload Consolidation to Efficiently Exploit Dynamic Parallelism for Recursive Applications
Author: Hancheng Wu (Researcher on electrical engineering)
Publisher:
Total Pages: 40
Release: 2015
Genre:
ISBN:

GPUs have been widely used to parallelize and accelerate applications for its high throughput. Traditionally, a GPU function can only be launched from the CPU side. This results in the fact that GPUs are preferable for those application which express a flat data parallelism, a simple data parallelism that is known at compiling time and can be easily distributed to different GPU blocks and threads. However, for those applications that contain nested data parallelism, which is not known a priori and can only be discovered at running time, it is difficult to write a GPU function that achieve high performance on parallelization and acceleration. One can easily end up with either a too coarse-grained or too fine-grained GPU function. Since Kepler architecture, Nvidia introduced a new feature -- Dynamic Parallelism (DP), which enables the initiation of GPU functions from inside a GPU function. This makes the nested parallelism easy to be explored on GPU since one can program in a way that a new GPU function can be launched whenever a local nested parallelism is met during the execution. What is more, DP makes implementing recursion on GPU without the intervention of CPUs possible. Many computations exhibit a pattern of nested data parallelism and among those is parallel recursion. However, preliminary data shows that simple DP-based implementations of recursion result in poor performance. This work focus on how to efficiently exploit DP for parallel recursive applications on GPU. Specifically, the goal is to free the users from programming with the complexity of GPUs' hardware and software and to automatically generate high performance GPU recursive functions implemented with DP given the inputs of simple parallel CPU recursive functions. To this end, first, I propose several DP-based parallel recursive templates that can be generated from a serial CPU recursive function. I compare the parallel recursive templates with non DP-based counterparts (flat kernels) to see if using DP in parallel recursive application can be beneficial or not. Second, to reduce the overhead of DP, I propose compiler techniques that improve the efficiency of simple DP-based parallel recursive functions by performing workload consolidation. My evaluation shows that GPU kernels consolidated with the proposed code transformations achieve an average speedup in the order of 1500x over basic implementations using DP and an average speedup of 3.9x over optimized flat GPU kernels for both tree traversal and graph based applications.

Parallelization in Inference Systems

Parallelization in Inference Systems
Author: Bertram Fronhöfer
Publisher: Springer Science & Business Media
Total Pages: 390
Release: 1992-04-22
Genre: Computers
ISBN: 9783540554257

This volume contains the proceedings of an international workshop on parallelism in inference systems held in Germany in December 1990. The topicof the workshop is still rather young and several papers in the book are overview articles intended to provide a first orientation toward some of the more intensively investigated subtopics. The main part of the book is a compilation of research papers on parallelization in special domains ofinference such as rewriting, automatic reasoning, logic programming, andconnectionist inference. Appended to the book is a collection of short project summaries received in response to a worldwide email call. The book is intended primarily for researchers working on inference systems who are interested in parallelizing their systems.

Automatic Parallelization

Automatic Parallelization
Author: Samuel Midkiff
Publisher: Springer Nature
Total Pages: 157
Release: 2022-06-01
Genre: Technology & Engineering
ISBN: 3031017366

Compiling for parallelism is a longstanding topic of compiler research. This book describes the fundamental principles of compiling "regular" numerical programs for parallelism. We begin with an explanation of analyses that allow a compiler to understand the interaction of data reads and writes in different statements and loop iterations during program execution. These analyses include dependence analysis, use-def analysis and pointer analysis. Next, we describe how the results of these analyses are used to enable transformations that make loops more amenable to parallelization, and discuss transformations that expose parallelism to target shared memory multicore and vector processors. We then discuss some problems that arise when parallelizing programs for execution on distributed memory machines. Finally, we conclude with an overview of solving Diophantine equations and suggestions for further readings in the topics of this book to enable the interested reader to delve deeper into the field. Table of Contents: Introduction and overview / Dependence analysis, dependence graphs and alias analysis / Program parallelization / Transformations to modify and eliminate dependences / Transformation of iterative and recursive constructs / Compiling for distributed memory machines / Solving Diophantine equations / A guide to further reading

Parallel Processing of Recursive Functions

Parallel Processing of Recursive Functions
Author:
Publisher:
Total Pages: 0
Release: 1977
Genre:
ISBN:

Algorithms defined as recursive functions, such as in pure LISP, are shown to have structure sufficient to distinguish between processes which must be executed in sequence and processes which may be executed in parallel. An interpreter program is presented for executing LISP programs and simultaneously computing the number of processors needed at each step of program execution in order to achieve optimum parallel processing. Sample program runs are presented to show speed-up ratios between strictly sequential and optimally parallel executions. A possible hardware organization for a parallel processing system derived from the interpreter program is presented. (Author).

Evolving OpenMP in an Age of Extreme Parallelism

Evolving OpenMP in an Age of Extreme Parallelism
Author: Matthias S. Müller
Publisher: Springer Science & Business Media
Total Pages: 192
Release: 2009-05-25
Genre: Computers
ISBN: 3642022847

This book constitutes the refereed proceedings of the 5th International Workshop on OpenMP, IWOMP 2009, held in Dresden, Germany in June 2009. The papers are organized in topical sections on performance and applications, runtime environments, tools and benchmarks as well as proposed extensions to OpenMP.

Parallel Processing of Recursive Functions

Parallel Processing of Recursive Functions
Author: Franklin Burkhead
Publisher:
Total Pages: 88
Release: 1977
Genre: Computer science
ISBN:

Algorithms defined as recursive functions, such as in pure LISP, are shown to have structure sufficient to distinguish between processes which must be executed in sequence and processes which may be executed in parallel. An interpreter program is presented for executing LISP programs and simultaneously computing the number of processors needed at each step of program execution in order to achieve optimum parallel processing. Sample program runs are presented to show speed-up ratios between strictly sequential and optimally parallel executions. A possible hardware organization for a parallel processing system derived from the interpreter program is presented. (Author).

Parallel Algorithm Derivation and Program Transformation

Parallel Algorithm Derivation and Program Transformation
Author: Robert Paige
Publisher: Springer Science & Business Media
Total Pages: 228
Release: 2007-08-28
Genre: Computers
ISBN: 0585273308

This book contains selected papers from the ONR Workshop on Parallel Algorithm Design and Program Transformation that took place at New York University, Courant Institute, from Aug. 30 to Sept. 1, 1991. The aim of the workshop was to bring together computer scientists in transformational programming and parallel algorithm design in order to encourage a sharing of ideas that might benefit both communities. It was hoped that exposurt: to algorithm design methods developed within the algorithm community would stimulate progress in software development for parallel architectures within the transformational community. It was also hoped that exposure to syntax directed methods and pragmatic programming concerns developed within the transformational community would encourage more realistic theoretical models of parallel architectures and more systematic and algebraic approaches to parallel algorithm design within the algorithm community. The workshop Organizers were Robert Paige, John Reif, and Ralph Wachter. The workshop was sponsored by the Office of Naval Research under grant number N00014-90-J-1421. There were 44 attendees, 28 presentations, and 5 system demonstrations. All attendees were invited to submit a paper for publication in the book. Each submitted paper was refereed by participants from the Workshop. The final decision on publication was made by the editors. There were several motivations for holding the workshop and for publishing papers contributed by its participants. Transformational programming and parallel computation are two emerging fields that may ultimately depend on each other for success.