Toward full elasticity in distributed static analysis: The case of callgraph analysis

In this paper we present the design and implementation of a distributed, whole-program static analysis framework that is designed to scale with the size of the input. Our approach is based on the actor programming model and is deployed in the cloud. Our reliance on a cloud cluster provides a degree...

Descripción completa

Guardado en:
Detalles Bibliográficos
Autores principales: Garbervetsky, D., Zoppi, E., Livshits, B., Zisman A., Bodden E., Schafer W., van Deursen A., Special Interest Group on Software Engineering (ACM SIGSOFT)
Formato: CONF
Materias:
Acceso en línea:http://hdl.handle.net/20.500.12110/paper_97814503_vPartF130154_n_p442_Garbervetsky
Aporte de:
id todo:paper_97814503_vPartF130154_n_p442_Garbervetsky
record_format dspace
spelling todo:paper_97814503_vPartF130154_n_p442_Garbervetsky2023-10-03T16:43:16Z Toward full elasticity in distributed static analysis: The case of callgraph analysis Garbervetsky, D. Zoppi, E. Livshits, B. Zisman A. Bodden E. Schafer W. van Deursen A. Special Interest Group on Software Engineering (ACM SIGSOFT) Development environments and tools Distributed and concurrent systems Parallel Performance and scalability Program analysis Program comprehension and visualization Elasticity Scalability Software engineering Concurrent systems Development environment Parallel Performance and scalabilities Program analysis Program comprehension Static analysis In this paper we present the design and implementation of a distributed, whole-program static analysis framework that is designed to scale with the size of the input. Our approach is based on the actor programming model and is deployed in the cloud. Our reliance on a cloud cluster provides a degree of elasticity for CPU, memory, and storage resources. To demonstrate the potential of our technique, we show how a typical call graph analysis can be implemented in a distributed setting. The vision that motivates this work is that every large-scale software repository such as GitHub, BitBucket or Visual Studio Online will be able to perform static analysis on a large scale. We experimentally validate our implementation of the distributed call graph analysis using a combination of both synthetic and real benchmarks. To show scalability, we demonstrate how the analysis presented in this paper is able to handle inputs that are almost 10 million lines of code (LOC) in size, without running out of memory. Our results show that the analysis scales well in terms of memory pressure independently of the input size, as we add more virtual machines (VMs). As the number of worker VMs increases, we observe that the analysis time generally improves as well. Lastly, we demonstrate that querying the results can be performed with a median latency of 15 ms. © 2017 Association for Computing Machinery. CONF info:eu-repo/semantics/openAccess http://creativecommons.org/licenses/by/2.5/ar http://hdl.handle.net/20.500.12110/paper_97814503_vPartF130154_n_p442_Garbervetsky
institution Universidad de Buenos Aires
institution_str I-28
repository_str R-134
collection Biblioteca Digital - Facultad de Ciencias Exactas y Naturales (UBA)
topic Development environments and tools
Distributed and concurrent systems
Parallel
Performance and scalability
Program analysis
Program comprehension and visualization
Elasticity
Scalability
Software engineering
Concurrent systems
Development environment
Parallel
Performance and scalabilities
Program analysis
Program comprehension
Static analysis
spellingShingle Development environments and tools
Distributed and concurrent systems
Parallel
Performance and scalability
Program analysis
Program comprehension and visualization
Elasticity
Scalability
Software engineering
Concurrent systems
Development environment
Parallel
Performance and scalabilities
Program analysis
Program comprehension
Static analysis
Garbervetsky, D.
Zoppi, E.
Livshits, B.
Zisman A.
Bodden E.
Schafer W.
van Deursen A.
Special Interest Group on Software Engineering (ACM SIGSOFT)
Toward full elasticity in distributed static analysis: The case of callgraph analysis
topic_facet Development environments and tools
Distributed and concurrent systems
Parallel
Performance and scalability
Program analysis
Program comprehension and visualization
Elasticity
Scalability
Software engineering
Concurrent systems
Development environment
Parallel
Performance and scalabilities
Program analysis
Program comprehension
Static analysis
description In this paper we present the design and implementation of a distributed, whole-program static analysis framework that is designed to scale with the size of the input. Our approach is based on the actor programming model and is deployed in the cloud. Our reliance on a cloud cluster provides a degree of elasticity for CPU, memory, and storage resources. To demonstrate the potential of our technique, we show how a typical call graph analysis can be implemented in a distributed setting. The vision that motivates this work is that every large-scale software repository such as GitHub, BitBucket or Visual Studio Online will be able to perform static analysis on a large scale. We experimentally validate our implementation of the distributed call graph analysis using a combination of both synthetic and real benchmarks. To show scalability, we demonstrate how the analysis presented in this paper is able to handle inputs that are almost 10 million lines of code (LOC) in size, without running out of memory. Our results show that the analysis scales well in terms of memory pressure independently of the input size, as we add more virtual machines (VMs). As the number of worker VMs increases, we observe that the analysis time generally improves as well. Lastly, we demonstrate that querying the results can be performed with a median latency of 15 ms. © 2017 Association for Computing Machinery.
format CONF
author Garbervetsky, D.
Zoppi, E.
Livshits, B.
Zisman A.
Bodden E.
Schafer W.
van Deursen A.
Special Interest Group on Software Engineering (ACM SIGSOFT)
author_facet Garbervetsky, D.
Zoppi, E.
Livshits, B.
Zisman A.
Bodden E.
Schafer W.
van Deursen A.
Special Interest Group on Software Engineering (ACM SIGSOFT)
author_sort Garbervetsky, D.
title Toward full elasticity in distributed static analysis: The case of callgraph analysis
title_short Toward full elasticity in distributed static analysis: The case of callgraph analysis
title_full Toward full elasticity in distributed static analysis: The case of callgraph analysis
title_fullStr Toward full elasticity in distributed static analysis: The case of callgraph analysis
title_full_unstemmed Toward full elasticity in distributed static analysis: The case of callgraph analysis
title_sort toward full elasticity in distributed static analysis: the case of callgraph analysis
url http://hdl.handle.net/20.500.12110/paper_97814503_vPartF130154_n_p442_Garbervetsky
work_keys_str_mv AT garbervetskyd towardfullelasticityindistributedstaticanalysisthecaseofcallgraphanalysis
AT zoppie towardfullelasticityindistributedstaticanalysisthecaseofcallgraphanalysis
AT livshitsb towardfullelasticityindistributedstaticanalysisthecaseofcallgraphanalysis
AT zismana towardfullelasticityindistributedstaticanalysisthecaseofcallgraphanalysis
AT boddene towardfullelasticityindistributedstaticanalysisthecaseofcallgraphanalysis
AT schaferw towardfullelasticityindistributedstaticanalysisthecaseofcallgraphanalysis
AT vandeursena towardfullelasticityindistributedstaticanalysisthecaseofcallgraphanalysis
AT specialinterestgrouponsoftwareengineeringacmsigsoft towardfullelasticityindistributedstaticanalysisthecaseofcallgraphanalysis
_version_ 1807315160483758080