| Y. A. Liu and S. D. Stoller. Loop optimization for aggregate array computations. In Proceedings of the IEEE 1998. |
....S Benchmark Unopt SR MAX SR ADJ ASE Figure 13: The e ect of ASE and Scalar Replacement on the Stencil Micro Benchmark Suite and the NAS MG Benchmark tions. Our work focuses only on multi dimensional stencils and nds necessarily orthogonal redundancies. In a similar vein, Liu and Stoller [18] optimize aggregate array computations. They e ectively optimize multidimensional stencils when the stencil is expressed with loops, but do not consider stencils with more than one weight. Fisher et al. 13, 14] optimize two dimensional stencils much like we do, but focus on compiling for SIMD ....
Y. Liu and S. Stoller. Loop optimization for aggregate array computations. In Proceedings of the IEEE
.... with Paige, similar loop optimization methods targeted toward very high level set theoretic languages were investigated by Fong and Ullman (Fong and Ullman, 1976; Fong, 1977; Fong, 1979) More recently, Liu and Stoller have used some extensions of these ideas to optimize array computations (Liu and Stoller, 1998) and recursive programs (Liu and Stoller, 2000) Liu et al. have also shown how such transformations can be applied to derive algorithms for incrementalcomputation problems (i.e. problems in which the goal is to maintain the value of some function F (x) as the input x undergoes small changes) ....
Liu, Y. and S. Stoller: 1998, `Loop Optimization for Aggregate Array Computations'. In: Proc. of the IEEE 1998 Int. Conf. on Comp. Lang. New York, NY, ACM Press.
....unroll, where a loop is fully unrolled. This can of course only be applied when the number of iterations is known. Loop exchange: Loop exchanging (or loop interchanging) exchanges the position of two loops (in a prefect loop nest) One of the many advantages of it is the reduction of the stride [17, 4]. Loop blocking tiling: Loop tiling is applied at high level and is primarily used to improve cache reuse [17, 4] Software pipeline: Software pipelining is usually applied at assembly code since it is based on processor functional unit usage. Software pipelining is based on computing a modulo ....
.... Loop exchange: Loop exchanging (or loop interchanging) exchanges the position of two loops (in a prefect loop nest) One of the many advantages of it is the reduction of the stride [17, 4] Loop blocking tiling: Loop tiling is applied at high level and is primarily used to improve cache reuse [17, 4]. Software pipeline: Software pipelining is usually applied at assembly code since it is based on processor functional unit usage. Software pipelining is based on computing a modulo scheduling of the loop body [22] Most optimising compilers make use of the unrolling and software pipeline ....
Y.A. Liu and S.D. Stoller. Loop optimization for aggregate array computations. In Proceedings of the IEEE 1998 International Conference on Computer Languages, Chicago, USA, 1998. IEEE Computer society press.
No context found.
Y. A. Liu and S. D. Stoller. Loop optimization for aggregate array computations. In Proceedings of the IEEE 1998.
....Such situations become evident when doing incrementalization and can be accommodated easily, as will be described in a future paper. Although we present the optimizations for a functional language, the underlying principle is general and has been applied to programs that use loops and arrays [30, 34]. Auxiliary information. Some values computed in a hoisted program might not be computed by the original program and are therefore called auxiliary information [37] Both incrementalization and pruning produce programs that are at least as fast as the given program, but caching auxiliary ....
Y. A. Liu and S. D. Stoller. Loop optimization for aggregate array computations. In Proceedings of the IEEE 1998.
....a visual design notation and a collection of refinement proof rules supporting compositional reasoning. Although not described in this paper due to space limitation, we have also studied important new techniques for generating efficient code from CCM specifications, by applying incrementalization [16, 19, 13, 12] to multi threaded programs and to object oriented programs; we have also studied the use of other analyses and optimizations, e.g. 11, 6, 17, 6] in our framework. We have a prototype implementation that allows interactive specification in Visual CM and automatic generation of Java code for ....
Y. A. Liu and S. D. Stoller. Loop optimization for aggregate array computations. In Proceedings of the IEEE
....using loops and arrays, rather than recursive functions. To optimize these programs using incrementalization, we identify aggregate computations on arrays performed by loops as function f , identify updates to loop variables and array subscripts as operation , and incrementalize f under [50]; incrementalization is reduced to solving constraints on loop variables and array subscripts, for which we use Omega [69] To increase incrementality, intermediate results and a special kind of auxiliary information for aggregate array computations are also cached and used when needed [50] The ....
.... [50] incrementalization is reduced to solving constraints on loop variables and array subscripts, for which we use Omega [69] To increase incrementality, intermediate results and a special kind of auxiliary information for aggregate array computations are also cached and used when needed [50]. The auxiliary information there corresponds to intermediate results that are re associated based on associativity of operations. For example, given an array a with n 1 rows and n 2 columns, the row neighborhoodsummation problem computes, for each row i (0 i n 1 m) the sum of the m by n 2 ....
[Article contains additional citation context not shown here]
Y. A. Liu and S. D. Stoller. Loop optimization for aggregate array computations. In Proceedings of the IEEE 1998 International Conference on Computer Languages, pages 262-271. IEEE CS Press, Los Alamitos, Calif., May 1998. 39
....Such situations become evident when doing incrementalization and can be accommodated easily, as will be described in a future paper. Although we present the optimizations for a functional language, the underlying principle is general and has been applied to programs that use loops and arrays [30, 34]. Auxiliary information. Some values computed in a hoisted program might not be computed by the original program and are therefore called auxiliary information [37] Both incrementalization and pruning produce programs that are at least as fast as the given program, but caching auxiliary ....
Y. A. Liu and S. D. Stoller. Loop optimization for aggregate array computations. In Proceedings of the IEEE 1998 International Conference on Computer Languages, pages 262-271. IEEE CS Press, Los Alamitos, Calif., May 1998.
.... about memoization or tabulation [19, 48] designing a VLSI chip by writing an algorithm using standard arithmetic operations, not shifts of bits and so on [56, 44] or writing an image processing program without worrying about eliminating redundant computations on overlapping regions of the image [88, 47]. More importantly, it is much easier to understand such straightforward programs, to prove their correctness, and to update and reuse them as needed. Then, to achieve the required computation efficiency in all these applications, it is highly desirable to be able to derive an efficient ....
....fib 1 (x Gamma 1) in 1st(r 1 ) 1st(2nd(r 1 ) 1st(r 1 ) For input n, while the straightforward program takes O(2 n ) time, the optimized program takes only O(n) time. 3. 5 More examples Below are more examples taken from graph algorithms [9, 50] VLSI design [56, 44] image processing [88, 47], and string processing [68, 48] respectively. Each one is a nontrivial problem. Problem Straightforward Optimized dag path sequence problem O(2 n ) O(n 2 ) non restoring binary integer square root k 2 ; 2 i ; Gamma; 2; 2 local neighborhood problem O(n 2 m 2 ) O(n 2 ) string ....
[Article contains additional citation context not shown here]
Y. A. Liu and S. D. Stoller. Loop optimization for aggregate array computations. In Proceedings of the IEEE 1998 International Conference on Computer Languages, pages 262--271. IEEE CS Press, Los Alamitos, Calif., May 1998.
....exponential time programs to polynomial time programs [34] but the optimized programs were still recursive, not iterative. This work gives rise to further drastic performance improvement in time, but more importantly in space. As a nal note, loops can be further improved using incrementalization [32, 33]. Acknowledgment. The authors are grateful to the following people. Anil Nerode pointed out that incrementalization simply turns recursion into iteration several years back. Allen Brown rst brought up the work on program schematology. Alberto Pettorossi rst provided reference [42] Steve Johnson ....
Y. A. Liu and S. D. Stoller. Loop optimization for aggregate array computations. In Proceedings of the IEEE 1998 International Conference on Computer Languages, pages 262-271. IEEE CS Press, Los Alamitos, Calif., May 1998.
....coincides with the intuition that, in many repeated computations, incremental computation can use previously computed results in simple and therefore automatable ways. The principle of cache and prune is general and applies also to other language features, e.g. imperative programs that use arrays [Liu and Stoller 1998]. Second, the idea of cache and prune is not limited to using intermediate results. If some other information might be useful for the incremental computation, we can cache them as well as intermediate results, incrementalize this further extended program, and prune the resulting programs. A class ....
....can only be coded using language features not treated in this article. For example, some image processing algorithms require arrays. The principle of cache and prune is general, but the method must be extended to analyze and transform programs written using those other features [Liu 1997; Liu and Stoller 1998]. 7.2 Transformation and Analysis Techniques The idea of caching all intermediate results followed by incrementalization can be regarded as a realization of the reduction from Kleene s course of values recursion to primitive recursion [Kleene 1952] private communication, A. Nerode, 1995) We ....
[Article contains additional citation context not shown here]
Liu, Y. A. and Stoller, S. D. 1998. Loop optimization for aggregate array computations. In Proceedings of the 1998 IEEE International Conference on Computer Languages. IEEE CS Press, Los Alamitos, Calif.
....Such situations become evident when doing incrementalization and can be taken care of easily. This will be described in a future paper. Although we present the optimizations for a functional language, the underlying principle is general and has been applied to programs that use loops and arrays [27, 30]. Some values computed in a hoisted program might not be computed by the original program and are therefore called auxiliary information [31] Both incrementalization and pruning produce programs that are as least as fast as the given program, but caching auxiliary information may result in a ....
Y. A. Liu and S. D. Stoller. Loop optimization for aggregate array computations. In Proceedings of the IEEE 1998 International Conference on Computer Languages, pages 262--271. IEEE CS Press, Los Alamitos, Calif., May 1998.
....In particular, we show that different ways of writing the original programs result in different optimized programs. We also show that the general principles underlying our approach apply to programs that use arrays, though detailed analyses and transformations for arrays are worked out elsewhere (Liu Stoller 1997). 6.1 Non restoring binary integer square root The running example is taken from VLSI circuit design (O Leary et al. 1994) which transforms the original specification into a strength reduced version and further into a hardware implementation. The strength reduced program was manually discovered ....
....min is maintained in a variable min 1 after each iteration using the above equation; min 1 is initialized to 0 (obtained with the optimization of folding initialization) before L i starts; and the loop L j is eliminated. We have studied automatic techniques for incrementalizing array computations (Liu Stoller 1997), and they can be applied in obtaining the program on the right of (27) from that on the left and obtaining the program in the middle of (28) from that on the left. To obtain the program on the right of (28) automatically, we need to extend our techniques to identify the functionality of min over ....
Liu, Y. A. & Stoller, S. D. (1997). Loop optimization for aggregate array computations, Technical Report TR 477, Computer Science Department, Indiana University, Bloomington, Indiana.
....Such need falls out explicitly when doing incrementalization and can be taken care of easily. This will be described in a future paper. Although we present the optimizations for a functional language, the underlying principle is general and has been applied to programs that use loops and arrays [25, 28]. Some values computed in a hoisted program might not be computed by the original program and are therefore called auxiliary information [29] Both incrementalization and pruning produce programs that are as least as fast as the given program, but caching auxiliary information may result in a ....
Y. A. Liu and S. D. Stoller. Loop optimization for aggregate array computations. In Proceedings of the IEEE 1998 International Conference on Computer Languages, pages 262--271. IEEE CS Press, Los Alamitos, Calif., May 1998.
Online articles have much greater impact More about CiteSeer.IST Add search form to your site Submit documents Feedback
CiteSeer.IST - Copyright Penn State and NEC