|
|
|
|
|
|
|
|
| ( 1 of 7 ) |
| United States Patent | 7,865,778 |
| Duesterwald , et al. | January 4, 2011 |
A method and system for error detection in programs with collective synchronization and/or procedures are provided. In one aspect, the method and system may use interprocedural analysis for matching synchronizations in a program in order to detect synchronization errors, and, if no such errors exist, may determine the synchronization phases of the program. The method and system in one aspect may use a combination of path expressions and interprocedural program slicing to match the synchronization statements that may execute along each program path. If the synchronization matching succeeds, the method and system in one aspect may determine the sets of synchronization statements that synchronize together. A matching failure may indicate the presence of a synchronization error and the method and system in one aspect may construct a counter example to illustrate the error.
| Inventors: | Duesterwald; Evelyn (Ossining, NY), Zhang; Yuan (Newark, DE) |
| Assignee: |
International Business Machines Corporation
(Armonk,
NY)
|
| Appl. No.: | 11/676,853 |
| Filed: | February 20, 2007 |
| Current U.S. Class: | 714/38.1 ; 714/48; 717/126; 717/132 |
| Current International Class: | G06F 11/36 (20060101) |
| Field of Search: | 717/126,132 714/38,48 |
| 5802374 | September 1998 | Gupta et al. |
| 6286130 | September 2001 | Poulsen et al. |
| 6718484 | April 2004 | Kodera |
| 7089543 | August 2006 | Rising, III |
| 7159211 | January 2007 | Jalan et al. |
| 7475385 | January 2009 | Huemiller, Jr. |
| 7552428 | June 2009 | Stoodley et al. |
| 7673295 | March 2010 | Lin |
| 7716645 | May 2010 | Dolby et al. |
| 2002/0124241 | September 2002 | Grey et al. |
Susan Horwitz, et al. "Interprocedural Slicing Using Dependence Graphs". ACM Transactions on Programming Languages and Systems, Jan. 1990, 26-60, vol. 12, No. 1. cited by other . Mark Weiser, "Program Slicing", IEEE Transactions on Software Engineering, 1981, 352-357,vol.10, No. 4. cited by other . Evelyn Duesterwald et al. "Concurrency Analysis in the Presence of Procedures Using a Data-Flow Framework", In Proceedings of the Symposium on Testing, Analysis, and Verification,1991, pp. 36-48. cited by other . Stephen P. Masticola et al. "Nonconcurrency Analysis", In Proceedings of the Fourth ACM SIGPLAN Symposium on Principles & Practice of Parallel Programming, May 1993, pp. 129-138, San Diego, California. cited by other . Tor E. Jeremiassen et al. "Static Analysis of Barrier Synchronization in Explicitly Parallel Systems", In Proceedings of the IFIP WG 10.3 Working Conference on Parallel Architectures and CompilationTechniques, PACT '94, pp. 171-180. cited by other . Arvind Krishnamurthy et al. "Analyses and Optimizations for Shared Address Space Programs", J. Parallel Distrib. Comput., 1996, 130-144, vol. 38, No. 2. cited by other . Yuan Lin. "Static Nonconcurrency Analysis of Openmp Programs", In First International Workshop on OpenMP, 2005. cited by other . Alexander Aiken, et al. "Barrier Inference", In Proceedings of the 25th ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, 1998, pp. 342-354. cited by other . A Krishnamoorthy, et al. "Parallel Programming in Split-C", In Supercomputing '93 Proceedings, Nov. 1993, pp. 262-273. cited by other . Stephen F. Siegel, et al. "Using Model Checking With Symbolic Execution to Verify Parallel Numerical Programs", In Proceedings of the 2006 International Symposium on Software Testing and Analysis, 2006, pp. 157-167. cited by other . Peng Tu, et al. "Gated SSA-based demand driven symbolic analysis for parallelizing compilers", In Conference Proceedings, 1995 International Conference on Supercomputing, pp. 414-423, Barcelona, Spain, Jul. 1995. cited by other . Cormac Flanagan, et al. "Modular Verification of Multithreaded Programs", Theor. Comput. Sci.,2005, 153-183, vol. 338, No. 1-3. cited by other . Alain Darte, et al. "A Linear-time Algorithm for Optimal Barrier Placement", In Proceedings of the tenthACM SIGPLAN symposium on Principles and Practice of Parallel Programming, 2005, pp. 26-35. cited by other . Chau-Wen Tseng, "Compiler Optimizations for Eliminating Barrier Synchronization", In Proceedings of the Fifth ACM SIGPLAN Symposium on Principles & Practice of Parallel Programming, Jul. 1995, pp. 144-155, Santa Barbara, California. cited by other . Michael O'Boyle et al, "Compile Time Barrier Synchronization Minimization", IEEE Trans. Parallel Distrib.Syst., 2002, 529-543, vol. 13, No. 6. cited by other . Shuyi Shao et al, "A Compiler Based Communication Analysis Approach for Multiprocessor Systems", 2006. cited by other . P.Hulfinger et al, "Titanium Language Reference Manual", Technical Report UCB/EECS-2005-15, 2005; U.C. Berkeley. cited by other . David Callahan et al, "Analysis of Event Synchronization in a Parallel Programming Tool", In Proceedings of the Second ACM SIGPLAN Symposium on Principles & Practice of Parallel Programming, Mar. 1990, pp. 21-30; Seattle, Washington. cited by other . Stephen F. Siegel and George S. Avrunin, "Modeling wildcard free mpi programs for verification", In Proceedings of the tenth ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming, pp. 95-106, 2005. cited by other . Robert E . Tarjan, "A unified approach to path problems", Journal of the ACM, 28(3):577-593, Jul. 1981. cited by other . G.A. Venkatesh, The semantic approach to program slicing. In Proceedings of the ACM SIGPLAN '91 Conference on Programming Language Design and Implementation, pp. 107-119, Toronto, Ontario, Jun. 1991. cited by other . Karl J. Ottenstein, et al. "The program dependence graph in a software development environment", Software Engineering Notes, 9(3), 1984. cited by other . Ron Cytron, et al. "Efficiently computing static single assignment form and the control dependence graph", ACM Transactions on Programming Languages and Systems, 13(4):451-490, Oct. 1991. cited by other . Cytron, Ron et al., Efficiently computing static single assignment form and the control dependence graph, ACM Transactions on Programming Languages and Systems, Oct. 1991, pp. 451-490, 13(4). cited by other . Eclipse Parallel Tools Platform (PTP) project, www. eclipse. org / ptp. cited by other. |
|
|