- 1.A. Agrawal, G. E. Blelloch, R. L. Krawitz, and C. A. Phillips. Four vector-matrix primitives. In Symposium on Parallel Algorithms and Architectures, pages 292-302. AGM, June 1959. Google ScholarDigital Library
- 2.A. V. Aho, R. Sethi, and J. D. Ullman. Compilers Principles, Techniques, and Tools. Addison- Wesley, Reading, MA, 1986. Google ScholarDigital Library
- 3.A. Aiken and A. Nicolau. Optimal loop parallelization. In SIGPLAN'88 Conference on Programming Language Design and Implementation, pages 308- 317. ACM, 1988. Google ScholarDigital Library
- 4.F. E. Allen, M. Burke, P. Charles, R. Cytron, and J. Ferrante. An overview of the PTRAN analysis system for multiprocessing. Journal of Parallel and Distributed Computing, 5(5):617-640, October 1988. Google ScholarDigital Library
- 5.R. Allen, D. Callahan, and K. Kennedy. Automatic decomposition of scientific programs for parallel execution. In Fourteenth Annual Symposium on Principles of Programming Languages, pages 63- 76. ACM, January 1987. Google ScholarDigital Library
- 6.R. Allen and K. Kennedy. Automatic translation of FORTRAN programs to vector form. A CM Trans. on Programming Languages and Systems, 9(4):491- 542, October 1987. Google ScholarDigital Library
- 7.U. Banerjee. Data dependence in ordinary programs. Master's thesis, University of Illinois at Urbana-Champaign, October 1976.Google Scholar
- 8.G. E. Blelloch. Scans as primitive parallel operations. IEEE Trans. on Computers, C-38(11):1526- 1539, November 1989. Google ScholarDigital Library
- 9.R. Cartwright and M. Felleisen. The semantics of program dependence. In SIGPLAN'89 Conference on Programming Language Design and Implementation, pages 13-27. ACM, 1989. Google ScholarDigital Library
- 10.M. C. Chen. A parallel language and its compilation to multiprocessor machines or VLSI. In Thirteenth Annual Symposium on Principles of Programming Languages, pages 131-139. ACM, January 1986. Google ScholarDigital Library
- 11.R. Cytron, J. Ferrante, B. K. Rosen, M. N. Wegman, and F. K. Zadeck. An efficient method of computing static single assignment form. In Sixteenth Annual Symposium on Principles of Programming Languages, pages 25-35. ACM, January 1989. Google ScholarDigital Library
- 12.J. J. Dongarra, J. Du Croz, S. Hammarling, and R. J. Hanson. An extended set of FORTRAN basic linear algebra subprograms. A CM Trans. on Mathematical Software, 14(1):1-17, March 1988. Google ScholarDigital Library
- 13.J. Ferrante, K. J. Ottenstein, and J. D. Warren. The program dependence graph and its use in optimization. A CM Trart~. on Programming Languages and Systems, 9(3):319-349, July 1987. Google ScholarDigital Library
- 14.P. Jouvelot and B. Dehbonei. A unified semantic approach for the vectorization and parallelization of generalized reductions. In International Conference on Supercompuling, pages 186-194. ACM, June 1989. Google ScholarDigital Library
- 15.R. M. Karp, R. E. Miller, and S. Winograd. The organization of computations for uniform recurrence equations. Journal of the Association for Computin9 Machinery, 14(3):563-590, July 1967. Google ScholarDigital Library
- 16.P. M. Kogge and H. S. Stone. A parallel algorithm for the efficient solution of a general class of recurrence equations. IEEE Trans. on Computers, C-22(8):786-793, August 1973.Google ScholarDigital Library
- 17.R. E. Ladner and M. J. Fischer. Parallel prefix computation. Journal of 1he Association for Computing Machinery, 27(4):831-838, October 1980. Google ScholarDigital Library
- 18.C. L. Lawson, R. J. Hanson, D. R. Kincaid, and F. T. Krogh. Basic linear algebra subprograms for Fortran usage. ACM Trans. on Mathematical Software, 5(3):308-323, September 1979. Google ScholarDigital Library
- 19.G. Lee, C. P. Kruskal, and D. J. Kuck. An empirical study of automatic restructuring of nonnumerical programs for parallel processors. IEEE Trans. on Computers, C-34(10):927-933, October 1985. Google ScholarDigital Library
- 20.S. I. Letovsky. Plan Analysis of Programs. PhD thesis, Dept. of Computer Science, Yale University, December 1988. Available as YALEU/CSD/RR 662. Google ScholarDigital Library
- 21.A. Munshi and B. Simons. Scheduling sequential loops on parallel processors. Technical Report RJ 5546, IBM Almaden Research Center, 1987.Google Scholar
- 22.A. J. Perlis and S. Rugaber. Programming with idioms in APL. In APL'79, pages 232-235. ACM, June 1979. APL Quote Quad, Vol. 9, No. 4. Google ScholarDigital Library
- 23.C. D. Polychronopoulos, D. J. Kuck, and D. A. Padua. Execution of parallel loops on parallel processor systems. In International Conference on Parallel Processing, pages 519-527. IEEE, 1986.Google Scholar
- 24.C. Rich and R. C. Waters. The programmer's apprentice: a research overview. Computer, 21(11):10-25, November 1988. Google ScholarDigital Library
- 25.M. Rosendahl and K. P. Mankwald. Analysis of programs by reduction of their structure. In V. Claus, H. Ehrig, and G. Rozenberg, editors, Graph-Grammars and Their Applications to Computer Science and Biology, pages 409-417. Springer-Verlag, 1979. Lecture Notes in Computer Science, Vol. 73. Google ScholarDigital Library
- 26.Thinking Machines Corporation, Technical Report HA87-4. Connection Machine Model CM-2 Technical Summary, April 1987.Google Scholar
- 27.M. J. Wolfe. Optimizing Supercompilers for Supereompulers. PhD thesis, Dept. of Computer Science, University of Illinois at Urbana-Champaign, October 1982. Available as TR UIUCDCS-R-82-1105. Google ScholarDigital Library
Index Terms
- Program optimization and parallelization using idioms
Recommendations
Program optimization and parallelization using idioms
Programs in languages such as Fortran, Pascal, and C were designed and written for a sequential machine model. During the last decade, several methods to vectorize such programs and recover other forms of parallelism that apply to more advanced machine ...
Fixing idioms: a recursion primitive for applicative DSLs
PEPM '13: Proceedings of the ACM SIGPLAN 2013 workshop on Partial evaluation and program manipulationIn a lazy functional language, the standard encoding of recursion in DSLs uses the host language's recursion, so that DSL algorithms automatically use the host language's least fixpoints, even though many domains require algorithms to produce different ...
Parallelization of a legacy research program using OpenMP
OpenMP is a standard for shared-memory parallel (SMP) programming that uses directives to specify the parallelism of the program, without requiring a significant investment in time for rewriting the program as other parallel programming standards ...
Comments