Determining asynchronous acyclic pipeline execution times
Val Donaldson, Jeanne Ferrante · 2002
Pipeline execution is a form of parallelism in which sub-computations of a repeated computation, such as statements in the body of a loop, are executed in parallel. A measure of the execution time of a pipeline is needed to determine if pipelining is an effective form of parallelism for a loop, and to evaluate alternative scheduling choices. We derive a formula for precisely determining the asynchronous pipeline execution time of a loop modeled as iterated execution of an acyclic task graph. The formula can be evaluated in a time that is linear in the number of tasks and edges in the graph. We assume that computation and communication times are fixed and known, the interprocessor communication and buffering capability are unbounded, and each task is assigned to a distinct processor.