Abstract
The next generation of supercomputers will probably need large amounts of parallelism, both for generating the needed computing power and for masking memory latency. Furthermore, it is necessary to expand the use of parallelism to less regular programs than is usually found in numerical applications. The main obstacle to be overcome is the presence of control dependences, i.e. of situations in which the result of an operation is used to decide if another operation is going to be executed or not. This forbids parallelization, unless speculative execution is used: an operation is initiated before being sure that it must be executed. Our aim here is to explore the logical constraints which must be satisfied by parallel speculative programs. This is best done in the framework of scheduling. For instance, one obtains speculative execution simply by ignoring some control dependences when constructing the schedule. If this is done, one has to insert compensating dependences to restore the correctness of the object program. One also has to keep enough information for being able to undo the effects of speculative operations. Lastly, one has to insure that everything stays finite in the object program, including the size of temporary memory and the amount of computation per logical time step. Preliminary solutions are given for some of these problems.
Chapter PDF
Keywords
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.
References
Corinne Ancourt and Francois Irigoin. Scanning polyhedra with DO loops. In Proc. third SIGPLAN Symp. on Principles and Practice of Parallel Programming, pages 39–50, ACM Press, April 1991.
Denis Barthou, Jean-François Collard, and Paul Feautrier. Fuzzy array dataflow analysis. Journal of Parallel and Distributed Computing, 40:210–226, 1997.
J.-F. Collard. Space-time transformation of while-loops using speculative execution. In Proc. of the 1994 Scalable High Performance Computing Conf., pages 429–436, IEEE, Knoxville, TN, May 1994.
Paul Feautrier. Dataflow analysis of scalar and array references. Int. J. of Parallel Programming, 20(1):23–53, February 1991.
Paul Feautrier. Some efficient solutions to the affine scheduling problem, II, multidimensional time. Int. J. of Parallel Programming, 21(6):389–420, December 1992.
Paul Feautrier. Some efficient solutions to the affine scheduling problem, part I, one dimensional time. Int. J. of Parallel Programming, 21(5):313–348, October 1992.
M. Griebl and C. Lengauer. On the space-time mapping of while-loops. Parallel Processing Letters, 1994. To appear. Also available as Report MIP-9304, Fakultät für Mathematik and Informatik, Universität Passau, Germany.
Vadim Maslov. Lazy array dataflow dependence analysis. In Proc. 21st ACM SIGPLAN-SIGACT Symp. POPL, pages 2–15, January 1994.
Dror E. Maydan, Saman P. Amarasinghe, and Monica S. Lam. Array dataflow analysis and its use in array privatization. In Proc. of ACM Conf. on Principles of Programming Languages, pages 2–15, January 1993.
William Pugh and D. Wonnacott. An Exact Method for the Analysis of Value-Based Data Dependences. Technical Report CS-TR-3196, U. of Maryland, December 1993.
Author information
Authors and Affiliations
Editor information
Rights and permissions
Copyright information
© 1997 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Feautrier, P. (1997). Basis of parallel speculative execution. In: Lengauer, C., Griebl, M., Gorlatch, S. (eds) Euro-Par'97 Parallel Processing. Euro-Par 1997. Lecture Notes in Computer Science, vol 1300. Springer, Berlin, Heidelberg. https://doi.org/10.1007/BFb0002713
Download citation
DOI: https://doi.org/10.1007/BFb0002713
Published:
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-63440-9
Online ISBN: 978-3-540-69549-3
eBook Packages: Springer Book Archive