This Article 
   
 Share 
   
 Bibliographic References 
   
 Add to: 
 
Digg
Furl
Spurl
Blink
Simpy
Google
Del.icio.us
Y!MyWeb
 
 Search 
   
Interactive Parallel Programming using the ParaScope Editor
July 1991 (vol. 2 no. 3)
pp. 329-341

The ParaScope Editor, an intelligent interactive editor for parallel Fortran programs, which is the centerpiece of the ParaScope project, an integrated collection of tools to help scientific programmers implement correct and efficient parallel programs, is discussed. ParaScope Editor reveals to users potential hazards of a proposed parallelization in a program. It provides a variety of powerful interactive program transformations that have been shown useful in converting programs to parallel form. ParaScope Editor supports general user editing through a hybrid text and structure editing facility that incrementally analyzes the modified program for potential hazards. It is shown that ParaScope Editor supports an exploratory programming style in which users get immediate feedback on their various strategies for parallelization.

[1] F. E. Allen, M. Burke, P. Charles, R. Cytron, and J. Ferrante, "An overview of the PTRAN analysis system for multiprocessing," inProc. First Int. Conf. Supercomput., June 1987, pp. 194-211.
[2] F. Allen, M. Burke, R. Cytron, J. Ferrante, W. Hsieh, and V. Sarkar, "A framework for determining useful parallelism," inProc. 1988 ACM Int. Conf. Supercomput., July 1988, pp. 207-215.
[3] F. Allen and J. Cocke, "A catalogue of optimizing transformations," inDesign and Optimization of Compilers, J. Rustin, Ed. Englewood Cliffs, NJ: Prentice-Hall, 1972.
[4] J. R. Allen, "Dependence analysis for subscripted variables and its application to program transformations," Ph.D. dissertation, Dept. Math. Sci., Rice Univ., May 1983.
[5] J. R. Allen, D. Bäumgartner, K. Kennedy, and A. Porterfield, "PTOOL: A semi-automatic parallel programming assistant," inProc. 1986 Int. Conf. Parallel Processing, St. Charles, IL, IEEE Computer Society Press, Aug. 1986.
[6] J. R. Allen, D. Callahan, and K. Kennedy, "Automatic decomposition of scientific programs for parallel execution," inConf. Record, 14th POPL, Jan. 1987.
[7] J. R. Allen and K. Kennedy, "PFC: A program to convert Fortran to parallel form," inSupercomputers: Design and Applications, IEEE Computer Society Press, Silver Spring, MD, 1984, pp. 186-205.
[8] R. Allen and K. Kennedy, "Automatic translation of FORTRAN to vector form,"ACM Trans. Programming Languages Syst., vol. 9, no. 4, pp. 491-524, 1987.
[9] V. Balasundaram, G. Fox, K. Kennedy, and U. Kremer, "An interactive environment for data partitioning and distribution," inProc. 5th Distributed Memory Comput. Conf., Charleston, SC, Apr. 1990.
[10] V. Balasundaram et al., "A Static Performance Estimator to Guide Data Partitioning Decisions,"Proc. Third ACM SIG Plan Symp. Principles and Practice of Parallel Programming, ACM Press, New York, 1991, pp. 213-223.
[11] V. Balasundaram and K. Kennedy, "A technique for summarizing data access and its use in parallelism enhancing transformations," inProc. ACM SIGPLAN '89 Conf. Program Language Design and Implementation, Portland, OR, June 1989.
[12] U. Banerjee,Dependence Analysis for Supercomputing, Kluwer Academic Publishers, Norwell, Mass., 1988.
[13] M. Burke and R. Cytron, "Interprocedural dependence analysis and parallelization," inProc. SIG-PLAN '86 Symp. Comp. Construct., Palo Alto, CA, June 1986, pp. 162-175.
[14] D. Callahan, S. Carr, and K. Kennedy, "Improving register allocation for subscripted variables," inProc. ACM SIGPLAN'90 Conf. Programming Language Design and Implementation, White Plains, NY, June 20-22, 1990.
[15] D. Callahan, J. Cocke, and K. Kennedy, "Estimating interlock and improving balance for pipelined machines,"J. Parallel Distributed Comput., vol. 5, no. 4, pp. 334-358, Aug. 1988.
[16] D. Callahan, K. Cooper, R. Hood, K. Kennedy, and L. Torczon, "ParaScope: A parallel programming environment,"Int. J. Supercomput. Appl., vol. 2, no. 4, pp. 84-99, Winter 1988.
[17] D. Callahan, K. Cooper, K. Kennedy, and L. Torczan, "Interprocedural constant propagation," inProc. ACM SIGPLAN "86 Symp. Compiler Construction, ACM SIGPLAN Notices, vol. 21, no. 6, June 1986.
[18] D. Callahan, J. Dongarra, and D. Levine, "Vectorizing compilers: A test suite and results," inProc. Supercomput. '88, Orlando, FL, Nov. 1988.
[19] D. Callahan and K. Kennedy, "Analysis of interprocedural side effects in a parallel programming environment," inProc. First Int. Conf. Supercomput., Athens, Greece, Springer-Verlag, June 1987.
[20] D. Callahan, K. Kennedy, and J. Subhlok, "Analysis of event synchronization in a parallel programming tool," inProc. Second ACM SIGPLAN Symp. Principles Practice Parallel Programming, Seattle, WA, Mar. 1990.
[21] D. Callahan and J. Subhlok, "Static analysis of low-level synchronization," inProc. ACM SIGPLAN-SIGOPS Workshop Parallel Distributed Debugging, Madison, WI, May 1988.
[22] A. Carle et al., "A Practical Environment for Scientific Programming,"Computer, Nov. 1987, pp. 75-89.
[23] S. Carr and K. Kennedy, "Blocking linear algebra codes for memory hierarchies," inProc. Fourth SIAM Conf. Parallel Processing for Scientific Comput., Chicago, IL, Dec. 1989.
[24] K.D. Cooper, K. Kennedy, and L. Torczon, "The impact of interprocedure analysis and optimization in theRnenvironment,"ACM Trans. Program. Lang. Syst., vol. 8, no. 4, pp. 491-523, Oct. 1986.
[25] R. Cytron, J. Ferrante, B. Rosen, M. Wegman, and K. Zadeck, "An efficient method of computing static single assignment form," inConf. Rec. Sixteenth ACM Symp. Principles Programming Languages, Austin, TX, June 1989.
[26] R. Cytron, J. Ferrante, and V. Sarkar, "Experience using control dependence in PTRAN," inLanguages and Compilers for Parallel Computing, D. Gelernter, A. Nicolau, and D. Padua, Eds. Cambridge, MA: MIT Press, 1990.
[27] J. Ferrante, K. Ottenstein, and J. Warren, "The program dependence graph and its use in optimization,"ACM Trans. Program. Lang. Syst., vol. 9, no. 3, pp. 319-349, July 1987.
[28] K. Fletcher, K. Kennedy, K. S. McKinley, and S. Warren, "The ParaScope Editor: User interface goals," Tech. Rep. TR90-113, Dep. Comput. Sci., Rice Univ., May 1990.
[29] G. Goff, K. Kennedy, and C.-W. Tseng, "Practical Dependence Testing,"Proc. ACM SIGPLAN '91 Conf. Programming Language Design and Implementation, ACM Press, New York, June 1991, pp. 15-29.
[30] V. Guarna, D. Gannon, D. Jablonowski, A. Malony, and Y. Gaur, "Faust: An integrated environment for parallel programming,"IEEE Software Mag., vol. 6, no. 4, pp. 20-27, July 1989.
[31] P. Havlak and K. Kennedy, "Experience with interprocedural analysis of array side effects," inProc. Supercomputing '90, New York, NY, Nov. 1990.
[32] L. Henderson, R. Hiromoto, O. Lubeck, and M. Simmons, "On the use of diagnostic dependency-analysis tools in parallel programming: Experiences using PTOOL,"J. Supercomput., vol. 4, pp. 83-96, 1990.
[33] S. Hiranandani, K. Kennedy, and C. Tseng, "Compiler support for machine-independent parallel programming in Fortran D," inCompilers and Runtime Software for Scalable Multiprocessors, J. Saltz and P. Mehrotra, Eds. Amsterdam, The Netherlands: Elsevier, to appear 1991.
[34] R. Hood, K. Kennedy, and J. Mellor-Crummey, "Parallel program debugging with on-the-fly anomaly detection," inProc. Supercomput. '90, New York, NY, Nov. 1990.
[35] IBM,Parallel Fortran Language and Library Reference, first ed., Document SC23-0431-0, Feb. 1988.
[36] K. Kennedy and K. S. McKinley, "Loop distribution with arbitrary control flow," inProc. Supercomput. '90, New York, NY, Nov. 1990.
[37] K. Kennedy, K. S. McKinley, and C. Tseng, "Analysis and transformation in the ParaScope Editor," inProc. 1991 ACM Int. Conf. Supercomp., Cologne, Germany, June 1991.
[38] U. Kremer, H. Zima, H.-J. Bast, and M. Gerndt, "Advanced tools and techniques for automatic parallelization,"Parallel Comput., vol. 7, pp. 387-393, 1988.
[39] D. J. Kuck,The Structure of Computers and Computations, vol. 1. New York: Wiley, 1978.
[40] D. Kuck, R. Kuhn, B. Leasure, and M. J. Wolfe, "Analysis and transformation of programs for parallel computation," inProc. COMPSAC 80, 4th Int. Comput. Software and Appl. Conf., Chicago, IL, Oct. 1980, pp. 709-715.
[41] D. Kuck, R. Kuhn, B. Leasure, and M. J. Wolfe, "The structure of an advanced retargetable vectorizer," inSupercomputers: Design and Applications, IEEE Computer Society Press, Silver Spring, MD, 1984, pp. 163-178.
[42] D. J. Kuck, R.H. Kuhn, B. Leasure, D.A. Padua, and M. Wolfe, "Compiler transformation of dependence graphs," inConf. Rec. 8th ACM Symp. Principles Program. Languages, Williamsburg, VA, Jan. 1981.
[43] B. Leasure, Ed.,PCF Fortran: Language Definition, Version 3.1, The Parallel Computing Forum, Champaign, IL, Aug. 1990.
[44] H. Levesque and J. Williamson,A Guidebook to Fortran on Supercomputers. San Diego, CA: Harcourt Brace Jovanovich, 1989.
[45] A. Osterhaug,Guide to Parallel Programming on Sequent Com puter Systems, Sequent Computer Systems, Beaverton, Ore., 1986.
[46] R. Sawdayi, G. Wagenbreth, and J. Williamson, "MIMDizer: Functional and data decomposition; creating parallel programs from scratch, transforming existing Fortran programs to parallel," inCompilers and Runtime Software for Scalable Multiprocessors, J. Saltz and P. Mehrotra, Eds. Amsterdam, The Netherlands: Elsevier, to appear 1991.
[47] H. G. Kolsky and R. G. Scarborough, "A high-performance vectorizing Fortran compiler,"IBM J. Res. Develop., vol. 30, pp. 163-171, Mar. 1986.
[48] B. Shei and D. Gannon, "SIGMACS: A programmable programming environment," inProc. Third Workshop Languages and Compilers for Parallel Computing, Irvine, CA, Aug. 1990.
[49] J. Singh and J. Hennessy, "An empirical investigation of the effectiveness of and limitations of automatic parallelization," inProc. Int. Symp. Shared Memory Multiprocessors, Tokyo, Japan, Apr. 1991.
[50] K. Smith and W. Appelbe, "PAT--An interactive Fortran parallelizing assistant tool," inProc. 1988 Int. Conf. Parallel Processing, St. Charles, IL, Aug. 1988.
[51] K. Smith, W. Appelbe, and K. Stirewalt, "Incremental dependence analysis for interactive parallelization," inProc. 1990 ACM Int. Conf. Supercomput., Amsterdam, The Netherlands, June 1990.
[52] J. Subhlok, "Analysis of synchronization in a parallel programming environment," Ph.D. dissertation, Rice Univ., Aug. 1990.
[53] M. N. Wegman and F. K. Zadeck, "Constant propagation with conditional branches," Brown Univ., Tech. Rep. No. CS-88-02, 1988.
[54] M. J. Wolfe, "Loop skewing: The wavefront method revisited,"Int. J. Parallel Programming, vol. 15, no. 4, pp. 279-293, Aug. 1986.
[55] M. Wolfe, "More iteration space tiling," inProc. Supercomputing '89, 1989, pp. 655-664.
[56] M. Wolfe,Optimizing Supercompilers for Supercomputers. Cambridge MA: MIT Press, 1989.
[57] H. Zima, H.-J. Bast, and M. Gerndt, "SUPERB: A tool for semi-automatic MIMD/SIMD parallelization,"Parallel Computing, vol. 6, pp. 1-18, 1988.

Index Terms:
Index TermsParaScope Editor; intelligent interactive editor; parallel Fortran programs; ParaScopeproject; integrated collection; scientific programmers; efficient parallel programs;powerful interactive program transformations; general user editing; hybrid text; structureediting facility; modified program; exploratory programming style; FORTRAN; interactive programming; parallel programming; text editing
Citation:
K. Kennedy, K.S. McKinley, C.W. Tseng, "Interactive Parallel Programming using the ParaScope Editor," IEEE Transactions on Parallel and Distributed Systems, vol. 2, no. 3, pp. 329-341, July 1991, doi:10.1109/71.86108
Usage of this product signifies your acceptance of the Terms of Use.