Analysis of parallel algorithms


This article discusses the analysis of parallel algorithms. Like in the analysis of "ordinary", sequential, algorithms, one is typically interested in asymptotic bounds on the resource consumption, but the analysis is performed in the presence of multiple processor units that cooperate to perform computations. Thus, one can determine not only how many "steps" a computation takes, but also how much faster it becomes as the number of processors goes up. The analysis approach works by first suppressing the number of processors. The next background paragraph explains how the abstraction of the number of processors first emerged.
A so-called work-time framework was originally introduced by Shiloach and Vishkin
for conceptualizing and describing parallel algorithms.
In the WT framework, a parallel algorithm is first described in terms of parallel rounds. For each round, the operations to be performed are characterized, but several issues can be suppressed. For example, the number of operations at each round need not be clear, processors need not be mentioned and any information that may help with the assignment of processors to jobs need not be accounted for. Second, the suppressed information is provided. The inclusion of the suppressed information is, in fact, guided by the proof of a scheduling theorem due to Brent, which is explained later in this article. The WT framework is useful since while it can greatly simplify the initial description of a parallel algorithm, inserting the details suppressed by that initial description is often not very difficult. For example, the WT framework was adopted as the basic presentation framework in the parallel algorithms books
and
,
as well as in the class notes
. The overview below explains how the WT framework can be used for analyzing more general parallel algorithms, even when their description is not available within the WT framework.

Overview

Suppose computations are executed on a machine that has processors. Let denote the time that expires between the start of the computation and its end. Analysis of the computation's running time focuses on the following notions:
Several useful results follow from the definitions of work, span and cost:
Using these definitions and laws, the following measures of performance can be given:
.
Analysis of parallel algorithms is usually carried out under the assumption that an unbounded number of processors is available. This is unrealistic, but not a problem, since any computation that can run in parallel on processors can be executed on processors by letting each processor execute multiple units of work. A result called Brent's law states that one can perform such a "simulation" in time, bounded by
or, less precisely,
An alternative statement of the law bounds above and below by
showing that the span and the work together provide reasonable bounds on the computation time.