Academia.eduAcademia.edu

Outline

Parallel Path-based Static Analysis

2010

https://doi.org/10.18130/V3C47R

Abstract

Multicore architectures are widely used in research and in- dustry today. The innovations in parallel computer architec- tures create an opportunity for the development of software solutions that exploit the available parallelism. Static pro- gram analysis is a well-explored area of research which has many applications including detecting software vulnerabil- ities, test case generation, debugging and program paral- lelization. For many types of static analysis, scalability is an important concern. In prior research, the performance of static analysis has been improved with techniques such as exploring a limited portion of the search space, flow- insensitivity, context-insensitivity, abstraction and the use of heuristics. Many of these techniques can be viewed as trade-offs that sacrifice precision in favor of scalability and practical applicability. Previous work has demonstrated that demand-driven query propagation is an effective and efficient static analysis tech- nique that is ...

References (28)

  1. REFERENCES
  2. M. Adler, W. Dittrich, B. Juurlink, M. Kuty, and I. Rieping. Communication-optimal parallel minimum spanning tree algorithms (extended abstract). In SPAA '98: Proceedings of the tenth annual ACM symposium on Parallel algorithms and architectures, pages 27-36, New York, NY, USA, 1998. ACM.
  3. G. M. Amdahl. Validity of the single processor approach to achieving large scale computing capabilities. In AFIPS '67 (Spring): Proceedings of the April 18-20, 1967, spring joint computer conference, pages 483-485, New York, NY, USA, 1967. ACM.
  4. D. A. Bader and G. Cong. A fast, parallel spanning tree algorithm for symmetric multiprocessors (smps). J. Parallel Distrib. Comput., 65(9):994-1006, 2005.
  5. R. Bodik, R. Gupta, and M. L. Soffa. Refining data flow information using infeasible paths. ACM Transactions on Programming Languages and Systems, 1997.
  6. A. Chan, F. Dehne, P. Bose, and M. Latzel. Coarse grained parallel algorithms for graph matching. Parallel Comput., 34(1):47-62, 2008.
  7. W. R. B. J. D. Pincus, and D. J. Sielaff. A static analyzer for finding dynamic programming errors. Software: Practice and Experience, 2000.
  8. E. Duesterwald, R. Gupta, and M. L. Soffa. A practical framework for demand-driven interprocedural data flow analysis. . ACM Transactions on Programming Languages and Systems, 1997.
  9. M. B. Dwyer, S. Elbaum, S. Person, and R. Purandare. Parallel randomized state-space search. International Conference on Software Engineering, 2007.
  10. Y. Hamadi. Disolver: A distributed constraint solver. Technical Report MSR-TR-2003-91, Microsoft Research, 2009.
  11. J. Haroon, Siddiqui, and S. Khurshid. Pkorat: Parallel generation of structurally complex test inputs. International Conference on Software Testing Verification and Validation, 2009.
  12. N. Heintze and O. Tardieu. Object recognition with gradient-based learning. In Proceedings of the ACM SIGPLAN 2002 Conference on Programming Language Design and Implementation, 2001.
  13. D. B. Johnson and P. Metaxas. A parallel algorithm for computing minimum spanning trees. In SPAA '92: Proceedings of the fourth annual ACM symposium on Parallel algorithms and architectures, pages 363-372, New York, NY, USA, 1992. ACM.
  14. R. Kramer, R. Gupta, and M. L. Soffa. The combining dag: A technique for parallel data flow analysis. IEEE Trans. Parallel Distrib. Syst., 5(8):805-813, 1994.
  15. W. Le and M. L. Soffa. Refining buffer overflow detection via demand-driven path-sensitive analyis. PASTE, 2007.
  16. W. Le and M. L. Soffa. A framework for scalable path-based static analysis. Techinical Report, 2009.
  17. Y.-F. Lee and B. G. Ryder. A comprehensive approach to parallel data flow analysis. In ICS '92: Proceedings of the 6th international conference on Supercomputing, pages 236-247, New York, NY, USA, 1992. ACM.
  18. Y.-F. Lee, B. G. Ryder, and M. E. Fiuczynski. Region analysis: A parallel elimination method for data flow analysis. IEEE Trans. Softw. Eng., 21(11):913-926, 1995.
  19. S.-w. Liao, Z. Du, G. Wu, and G.-Y. Lueh. Data and computation transformations for brook streaming applications on multiprocessors. In CGO '06: Proceedings of the International Symposium on Code Generation and Optimization, pages 196-207, Washington, DC, USA, 2006. IEEE Computer Society.
  20. S. Passas, K. Magoutis, and A. Bilas. Towards 100 gbit/s ethernet: multicore-based parallel communication protocol design. In ICS '09: Proceedings of the 23rd international conference on Supercomputing, pages 214-224, New York, NY, USA, 2009. ACM.
  21. Phoenix connect. https://connect.microsoft.com/Phoenix.
  22. M. J. Quinn and N. Deo. Parallel graph algorithms. ACM Comput. Surv., 16(3):319-348, 1984.
  23. K. Ramani, C. P. Gribble, and A. Davis. Streamray: a stream filtering architecture for coherent ray tracing. In ASPLOS '09: Proceeding of the 14th international conference on Architectural support for programming languages and operating systems, pages 325-336, New York, NY, USA, 2009. ACM.
  24. R. Rangarajan, S. Iyer, and G. Sajith. A technique for parallel reachability analysis of java programs. Proceedings International Conference on Information Technology, 2000.
  25. W. Rivera. Scalable parallel genetic algorithms. Artif. Intell. Rev., 16(2):153-168, 2001.
  26. Y. Xie, A. Chou, and D. Engler. Archer: Using symbolic, path-sensitive analysis to detect memory access errors. Proceedings of 11th ACM SIGSOFT International Symposium on Foundations of Software Engineering (ESEC/FSE), 2003.
  27. L. Yi, C. Moretti, S. Emrich, K. Judd, and D. Thain. Harnessing parallelism in multicore clusters with the all-pairs and wavefront abstractions. In HPDC '09: Proceedings of the 18th ACM international symposium on High performance distributed computing, pages 1-10, New York, NY, USA, 2009. ACM.
  28. M. Zitser, R. Lippmann, and T. Leek. Testing static analysis tools using exploitable buffer overflows from open source code. In SIGSOFT '04/FSE-12: Proceedings of the 12th ACM SIGSOFT twelfth international symposium on Foundations of software engineering, pages 97-106, New York, NY, USA, 2004. ACM.