Skip to main content
Log in

On the use of diagnostic dependence-analysis tools in parallel programming: Experiences using PTOOL

  • Published:
The Journal of Supercomputing Aims and scope Submit manuscript

Abstract

Although considerable technology has been developed for debugging and developing sequential programs, producing verifiably correct parallel code is a much harder task. In view of the large number of possible scheduling sequences, exhaustive testing is not a feasible method for determining whether a given parallel program is correct; nor have there been sufficient theoretical developments to allow the automatic verification of parallel programs. PTOOL, a tool being developed at Rice University in collaboration with users at Los Alamos National Laboratory, provides an alternative mechanism for producing correct parallel code. PTOOL is a semi-automatic tool for detecting implicit parallelism in sequential Fortran code. It uses vectorizing compiler techniques to identify dependences preventing the parallelization of sequential regions. According to the model supported by PTOOL, a programmer should first implement and test his program using traditional sequential debugging techniques. Then, using PTOOL, he can select loop bodies that can be safely executed in parallel. At Los Alamos, we have been interested in examining the role of dependence-analysis tools in the parallel programming process. Therefore, we have used PTOOL as a static debugging tool to analyze parallel Fortran programs. Our experiences using PTOOL lead us to conclude that dependence-analysis tools are useful to today's parallel programmers. Dependence-analysis is particularly useful in the development of asynchronous parallel code. With a tool like PTOOL, a programmer can guarantee that processor scheduling cannot affect the results of his parallel program. If a programmer wishes to implement a partially parallelized region through the use of synchronization primitives, however, he will find that dependence analysis is less useful. While a dependence-analysis tool can greatly simplify the task of writing synchronization code, the ultimate responsibility of correctness is left to the programmer.

This is a preview of subscription content, log in via an institution to check access.

Access this article

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

Institutional subscriptions

Similar content being viewed by others

References

  • Allen, J.R. 1983. Dependence analysis for subscripted variables and its application to program transformations. Ph.D. diss., Dept. of Math. Sci., Rice Univ., Houston, Tex.

    Google Scholar 

  • Allen, J.R., and Kennedy, K. 1985. PFC: A program to convert Fortran to parallel form. In Supercomputers, Design and Applications. (K. Hwang, ed.), IEEE Comp. Soc. Press, pp. 185–205.

  • Allen, J.R., Callahan, D., and Kennedy, K. 1985. An implementation of interprocedural analysis in a vectorizing Fortran compiler. Tech. Rept., Dept. of Comp. Sci., Rice Univ., Houston, Tex. (Dec.).

    Google Scholar 

  • Allen, J.R., Baumgartner, D., Kennedy, K., and Porterfield, A. 1986. PTOOL: A semi-automatic parallel programming assistant. Tech. Rept. TR 86–31, Dept. of Comp. Sci., Rice Univ., Houston, Tex.

    Google Scholar 

  • Arvind. 1987. Future scientific programming on parallel machines. Computation Structures Group Memo 272, Lab. for Comp. Sci., Mass. Inst. of Tech., Cambridge, Mass.

    Google Scholar 

  • Babb, II, R.B. 1985. Programming the HEP with large-grain data flow techniques. In Parallel MIMD Computation: HEP Supercomputer and Its Applications. (J.S. Kowalik, ed.), MIT Press, Cambridge, Mass.

    Google Scholar 

  • Balasundaram, V., Bäumgartner, D., Callahan, D., Kennedy, K., and Subhlok, J. 1989. PTOOL: A system for static analysis of parallelism in programs. Submitted for publication.

  • Barendregt, H., and van Leeuwen, M. 1986. Functional programming and the language tale. In Current Trends in Concurrency (G. Goos and J. Hartmanis, eds.), Lecture Notes in Computer Science, vol. 224, Springer-Verlag, Berlin.

    Google Scholar 

  • Bernstein, A.J. 1966. Analysis of programs for parallel processing. IEEE Trans. on Electronic Comps., 15, 5 (Oct.).

    Google Scholar 

  • Carlson, B.G., and Lathrop, K.D. 1968. Computing Methods in Rector Physics. Gordon and Breach, New York.

    Google Scholar 

  • Carter, L.L., and Cashwell, E.D. 1975. Particle transport simulation with the Monte Carlo method. In ERDA Critical Review Series, Energy Res. And Dev. Admin.

  • Cytron, R.G. 1984. Compile time scheduling and optimization for asynchronous machines. Ph.D. thesis, Dept. of Comp, Sci. Rept. no. 84–1177, Univ. of Ill. at Urbana-Champaign, Urbana, Ill.

    Google Scholar 

  • Darema-Rogers, F., George, D.A., Norton, V.A., and Pfister, G.F. 1985. VM/EPEX: A VM environment for parallel execution. IBM Res. Rept. RC11225.

  • Flatt, H., and Kennedy, K. 1985. The performance of parallel processors. Tech. Rept. TR 85–22, Dept. of Comp. Sci., Rice Univ., Houston, Tex.

    Google Scholar 

  • Frederickson, P.O., Hiromoto, R., and Larson, J. 1987. A parallel Monte Carlo transport algorithm using a pseudorandom tree to guarantee reproducibility. J. Parallel Computing, 4, 3.

    Google Scholar 

  • Friedman, D., and Wise, D. 1978. Aspects of applicative programming for parallel processing. IEEE Trans. Comp., C-27, 4 (Apr.).

  • Jordan, H.F. 1985. Structuring parallel algorithms in an MIMD shared memory environment. In Proc. of the 18th Hawaii Internat. Conf. on System Sciences (Jan.).

  • Kennedy, K. 1980. Automatic translation of Fortran programs to vector form. Rice Tech. Rept. 467–029–4, Dept. of Math. Sci., Rice Univ., Houston, Tex.

    Google Scholar 

  • Kuck, D.J. 1978. The Structure of Computers and Computations, Vol. 1. John Wiley and Sons, New York.

    Google Scholar 

  • Kuck, D.J., Kuhn, R.H., Padua, D.A., Leasure, B., and Wolfe, M. 1981. Dependence graphs and compiler optimizations. In Proc. of the Eighth Symp. on Principles of Programming Languages, pp. 207–218.

  • Lubeck, O.M., and Simmons, M. 1985. An approach to partitioning scientific computations for shared memory architectures. LA-UR 85–1555, Los Alamos Nat. Lab., Los Alamos, N.M.

    Google Scholar 

  • Lubeck, O.M., Frederickson, P.O., Hiromoto, R.E., and Moore, J.W. 1985. Los Alamos experience with the HEP computer. In Parallel MIMD Computation: HEP Supercomputer and Its Applications. (J.S. Kowalik, ed.), MIT Press, Cambridge, Mass.

    Google Scholar 

  • Lusk, E.L., and Overbeek, R.A. 1985. Use of monitors in Fortran: A tutorial on the barrier, self-scheduling DO-loop, and askfor monitors. In Parallel MIMD Computation: HEP Supercomputer and Its Applications. (J.S. Kowalik, ed.), MIT Press, Cambridge, Mass.

    Google Scholar 

  • Mandell, D. 1987. Experiences and results multitasking a hydrodynamics code on global and local memory machines. In Proc. of the 1987 Conf. on Parallel Processing. (S.K. Sahni, ed.), Penn. State Univ. Press (Aug.).

  • Ottenstein, K.J. 1985. A brief survey of implicit parallelism detection. In Parallel MIMD Computation: HEP Supercomputer and Its Applications. (J.S. Kowalik, ed.), MIT Press, Cambridge, Mass.

    Google Scholar 

  • Wienke, B.R., and Hiromoto, R.E. 1985. Parallel S n iteration schemes. Nuc. Sci. Eng., 90, 1.

    Google Scholar 

  • Wolfe, M.J. 1978. Techniques for improving the inherent parallelism in programs. Rept. 78–929, Dept. of Comp. Sci., Univ. of Ill. at Urbana-Champaign, Urbana, Ill.

    Google Scholar 

  • Wolfe, M.J. 1989. Optimizing Supercompilers for Supercomputers. Res. Monographs in Parallel and Distributed Computing. MIT Press, Cambridge, Mass.

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Additional information

This work was performed under the auspices of the U.S. Department of Energy.

Rights and permissions

Reprints and permissions

About this article

Cite this article

Henderson, L.A., Hiromoto, R.E., Lubeck, O.M. et al. On the use of diagnostic dependence-analysis tools in parallel programming: Experiences using PTOOL. J Supercomput 4, 83–96 (1990). https://doi.org/10.1007/BF00162344

Download citation

  • Issue Date:

  • DOI: https://doi.org/10.1007/BF00162344

Keywords

Navigation