Subexpression ordering in the execution of arithmetic expressions
- 1 July 1971
- journal article
- Published by Association for Computing Machinery (ACM) in Communications of the ACM
- Vol. 14 (7) , 479-485
- https://doi.org/10.1145/362619.362630
Abstract
An arithmetic expression can often be broken down into its component subexpressions. Depending on the hardware environment in which the expression is to be executed, these subexpressions can be evaluated in serials, in parallel, or in a combination of these modes. This paper shows that expression execution time can be minimized only if consideration is given to the ordering of the subexpressions. In particular, subexpressions should be executed in order of decreasing memory and processor time requirements. This observation is valid for configurations ranging from a uniprocessor with an unbuffered main memory to a multiprocessor with a “cache” buffer memory. If the number of subexpressions which can be executed in parallel exceeds the number of available processors, then execution of some of these subexpressions must be postponed. A procedure is given which combines this requirement with the earlier ordering considerations to provide an optimal execution sequence.Keywords
This publication has 4 references indexed in Scilit:
- Optimal Preemptive Scheduling on Two-Processor SystemsIEEE Transactions on Computers, 1969
- Generation of optimal code for expressions via factorizationCommunications of the ACM, 1969
- On compiling algorithms for arithmetic expressionsCommunications of the ACM, 1967
- One-Pass compilation of arithmetic expressions for a parallel processorCommunications of the ACM, 1967