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)
- REFERENCES
- 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.
- 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.
- 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.
- R. Bodik, R. Gupta, and M. L. Soffa. Refining data flow information using infeasible paths. ACM Transactions on Programming Languages and Systems, 1997.
- A. Chan, F. Dehne, P. Bose, and M. Latzel. Coarse grained parallel algorithms for graph matching. Parallel Comput., 34(1):47-62, 2008.
- W. R. B. J. D. Pincus, and D. J. Sielaff. A static analyzer for finding dynamic programming errors. Software: Practice and Experience, 2000.
- 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.
- M. B. Dwyer, S. Elbaum, S. Person, and R. Purandare. Parallel randomized state-space search. International Conference on Software Engineering, 2007.
- Y. Hamadi. Disolver: A distributed constraint solver. Technical Report MSR-TR-2003-91, Microsoft Research, 2009.
- J. Haroon, Siddiqui, and S. Khurshid. Pkorat: Parallel generation of structurally complex test inputs. International Conference on Software Testing Verification and Validation, 2009.
- 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.
- 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.
- 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.
- W. Le and M. L. Soffa. Refining buffer overflow detection via demand-driven path-sensitive analyis. PASTE, 2007.
- W. Le and M. L. Soffa. A framework for scalable path-based static analysis. Techinical Report, 2009.
- 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.
- 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.
- 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.
- 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.
- Phoenix connect. https://connect.microsoft.com/Phoenix.
- M. J. Quinn and N. Deo. Parallel graph algorithms. ACM Comput. Surv., 16(3):319-348, 1984.
- 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.
- R. Rangarajan, S. Iyer, and G. Sajith. A technique for parallel reachability analysis of java programs. Proceedings International Conference on Information Technology, 2000.
- W. Rivera. Scalable parallel genetic algorithms. Artif. Intell. Rev., 16(2):153-168, 2001.
- 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.
- 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.
- 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.