Advanced compiler optimizations for supercomputers
Communications of the ACM - Special issue on parallelism
Performance analysis and optimization of VLSI dataflow arrays
Journal of Parallel and Distributed Computing
PLDI '88 Proceedings of the ACM SIGPLAN 1988 conference on Programming Language design and Implementation
Software pipelining: an effective scheduling technique for VLIW machines
PLDI '88 Proceedings of the ACM SIGPLAN 1988 conference on Programming Language design and Implementation
Faster scaling algorithms for network problems
SIAM Journal on Computing
Introduction to algorithms
Introduction to parallel algorithms and architectures: array, trees, hypercubes
Introduction to parallel algorithms and architectures: array, trees, hypercubes
Graphical development tools for network-based concurrent supercomputing
Proceedings of the 1991 ACM/IEEE conference on Supercomputing
Performance analysis and optimization of asynchronous circuits
Performance analysis and optimization of asynchronous circuits
Scheduling Parallel Computations
Journal of the ACM (JACM)
Partitioning and Scheduling Parallel Programs for Multiprocessors
Partitioning and Scheduling Parallel Programs for Multiprocessors
DSC: Scheduling Parallel Tasks on an Unbounded Number of Processors
IEEE Transactions on Parallel and Distributed Systems
Determining Asynchronous Acyclic Pipeline Execution Times
IPPS '96 Proceedings of the 10th International Parallel Processing Symposium
Scheduling Loops on Parallel Processors: A Simple Algorithm with Close to Optimum Performance
CONPAR '92/ VAPP V Proceedings of the Second Joint International Conference on Vector and Parallel Processing: Parallel Processing
Macro pipelining based scheduling on high performance heterogeneousmultiprocessor systems
IEEE Transactions on Signal Processing
A Pipeline-Based Approach for Scheduling Video Processing Algorithms on NOW
IEEE Transactions on Parallel and Distributed Systems
Automatic Scheduler for Real-Time Vision Applications
IPDPS '01 Proceedings of the 15th International Parallel & Distributed Processing Symposium
Hi-index | 0.00 |
Asynchronous pipelining is a form of parallelism that is useful in both distributed and shared memory systems. We show that asynchronous pipeline schedules are a generalization of both noniterative DAG (directed acyclic graph) schedules as well as simpler pipeline schedules, unifying these two types of scheduling. We generalize previous work on determining if a pipeline schedule will deadlock, and generalize Reiter's well-known formula for determining the iteration interval of a deadlock-free schedule, which is the primary measure of the execution time of a schedule. Our generalizations account for nonzero communication times (easy) and the assignment of multiple tasks to processors (nontrivial). A key component of our generalized approach to pipeline schedule analysis is the use of pipeline scheduling edges with potentially negative data dependence distances. We also discuss implementation of an asynchronous pipeline schedule at runtime; show how to efficiently simulate pipeline execution on a sequential processor; define and derive bounds on the startup time of a schedule, which is a secondary schedule performance measure; and describe a new algorithm for evaluating the iteration interval formula.