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.
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.
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.).
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.
Arvind. 1987. Future scientific programming on parallel machines. Computation Structures Group Memo 272, Lab. for Comp. Sci., Mass. Inst. of Tech., Cambridge, Mass.
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.
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.
Bernstein, A.J. 1966. Analysis of programs for parallel processing. IEEE Trans. on Electronic Comps., 15, 5 (Oct.).
Carlson, B.G., and Lathrop, K.D. 1968. Computing Methods in Rector Physics. Gordon and Breach, New York.
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.
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.
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.
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.
Kuck, D.J. 1978. The Structure of Computers and Computations, Vol. 1. John Wiley and Sons, New York.
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.
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.
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.
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.
Wienke, B.R., and Hiromoto, R.E. 1985. Parallel S n iteration schemes. Nuc. Sci. Eng., 90, 1.
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.
Wolfe, M.J. 1989. Optimizing Supercompilers for Supercomputers. Res. Monographs in Parallel and Distributed Computing. MIT Press, Cambridge, Mass.
Author information
Authors and Affiliations
Additional information
This work was performed under the auspices of the U.S. Department of Energy.
Rights 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
Issue Date:
DOI: https://doi.org/10.1007/BF00162344