VLDB 2026 Research / reviewers in the wild / expert
Gharib Gharibi
dblp:153/1746
· DBLP profile ↗
9ranked-venue papers
5as first author
6since 2021 · last 2022
0000-0003-0062-4748ORCID · corroborated
Domains — the database's venue-derived domains; a paper can count in several
Software engineering, systems software and programming languages · 4 · 2 first-author · 3 since 2021Artificial intelligence and machine learning · 3 · 1 first-author · 1 since 2021Applied, interdisciplinary, general and emerging computing · 3 · 2 first-author · 1 since 2021Databases, data management, data science and information retrieval · 2 · 1 first-authorSystems, architecture and hardware · 1 · 1 first-author · 1 since 2021
| Year | Publication | Venue | Position |
|---|---|---|---|
| 2022 | Blind Inference: An Automated Privacy-Preserving Prediction Service using Secure Multi-Party Computation for Medical Applications
Gharib Gharibi, Babak Poorebrahim Gilkalaye, Praneeth Vepakomma, Zachi Attia, Riddhiman Das, Suraj Kapa, Ramesh Raskar |
AMIA | 1 |
| 2022 | An Automated Framework for Distributed Deep Learning-A Tool DemoabstractSplit learning (SL) is a distributed deep-learning approach that enables individual data owners to train a shared model over their joint data without exchanging it with one another. SL has been the subject of much research in recent years, leading to the development of several versions for facilitating distributed learning. However, the majority of this work mainly focuses on optimizing the training process while largely ignoring the design and implementation of practical tool support. To fill this gap, we present our automated software framework for training deep neural networks from decentralized data based on our extended version of SL, termed Blind Learning. Specifically, we shed light on the underlying optimization algorithm, explain the design and implementation details of our framework, and present our preliminary evaluation results. We demonstrate that Blind Learning is 65% more computationally efficient than SL and can produce better performing models. Moreover, we show that running the same job in our framework is at least 4.5× faster than PySyft. Our goal is to spur the development of proper tool support for distributed deep learning. Gharib Gharibi, Anissa Khan, Babak Poorebrahim Gilkalaye, Praneeth Vepakomma, Ramesh Raskar, Steve Penrod, Greg Storm, Riddhiman Das |
ICDCS | 1 |
| 2022 | Similarity-based second chance autoencoders for textual data
Saria Goudarzvand, Gharib Gharibi, Yugyung Lee |
Appl. Intell. | 2 |
| 2022 | Defect prediction using deep learning with Network Portrait Divergence for software evolution
Vijay Walunj, Gharib Gharibi, Rakan Alanazi, Yugyung Lee |
Empir. Softw. Eng. | 2 |
| 2021 | Automated end-to-end management of the modeling lifecycle in deep learning
Gharib Gharibi, Vijay Walunj, Raju Nekadi, Raj Marri, Yugyung Lee |
Empir. Softw. Eng. | 1 |
| 2021 | Facilitating program comprehension with call graph multilevel hierarchical abstractionsabstractProgram comprehension is a fundamental prerequisite for software maintenance and evolution. In order to understand a software structure, developers often read its codebase or documentation—if available and not outdated. Both approaches are tedious, time-consuming, and inefficient. Recent methods and tools have emerged to facilitate program comprehension, such as static call graphs, which depict the structure of the software system as a directed graph. However, the usage of call graphs still faces two main challenges: (1) large call graphs can be difficult to understand, and (2) they are limited to a single level of granularity, such as function calls. In this paper, we introduce a coarsening technique to create multi-level, hierarchical representations of the call graph. Specifically, we propose a hierarchical clustering approach of the execution paths to visualize the call graph at different granularity levels and for different software units, including packages, classes, and functions. Our overarching goal is to assist software developers in understanding the software system from a high-level of abstraction to the low-level of implementation with the ability to focus on particular parts of the system individually. To validate our approach and tool support, we conducted a user study of 18 software engineers from more than 11 industries who carried out several tasks using our system and then answered a survey. The results demonstrate that our approach is feasible to automatically construct multi-level abstractions of the call graph and hierarchically cluster them into meaningful abstractions. A video demo of the tool is available at https://rakanalanazi.github.io/CodEx/. Rakan Alanazi, Gharib Gharibi, Yugyung Lee |
J. Syst. Softw. | 2 |
| 2019 | GraphEvo: Characterizing and Understanding Software Evolution using Call GraphsabstractUnderstanding software evolution is an imperative prerequisite for software related activities such as testing, debugging, and maintenance. As a software system evolves, it increases in size and complexity, introducing new challenges of understating the inner system interactions and subsequently hinders the overall system comprehension. While tools that construct and visualize call graphs have been used to facilitate software comprehension, they are still limited to capturing the functionality of a single software system at a time. However, understanding the similarities and differences across multiple releases becomes an imperative and challenging task during software evolution. To this end, we present a tool, named GraphEvo, that focuses on automating the process of quantifying and visualizing the changes across multiple releases of a software system based on an information-theoretic approach to compare the call graphs. Specifically, GraphEvo can automatically (1) construct and visualize the call graph for one or more software releases, (2) calculate and display a set of graph-based metrics, and (3) construct color-coded call graphs to visualize system evolution. The main goal of GraphEvo is to assist software developers and testers in exploring and tracking software changes over time. We demonstrate the functionality of GraphEvo by analyzing and studying five real software systems throughout their entire lifespan. The tool, evaluation results, and a video demo are available at https://goo.gl/8edZ64. Vijay Walunj, Gharib Gharibi, Duy H. Ho, Yugyung Lee |
IEEE BigData | 2 |
| 2018 | Automatic Hierarchical Clustering of Static Call Graphs for Program ComprehensionabstractProgram comprehension is an imperative and indispensable prerequisite for several software tasks, including testing, maintenance, and evolution. In practice, understanding the software system requires investigating the high-level system functionality and mapping it to its low-level implementation, i. e. source code. The implementation of a software system can be captured using a call graph. A call graph represents the system's functions and their interactions at a single level of granularity. While call graphs can facilitate understanding the inner system functionality, developers are still required to manually map the high-level system functionality to its call graph. This manual mapping process is expensive, time-consuming and creates a cognitive gap between the system's highly-level functionality and its implementation. In this paper, we present an innovative approach that can automatically (1) construct and visualize the static call graph for a system written in Python, (2) cluster the execution paths of the call graph into hierarchal abstractions, and (3) label the clusters according to their major functional behaviors. The goal is to bridge the cognitive gap between the high-level system functionality and its call graph, which can further facilitate system comprehension. To validate our approach, we conducted four case studies including code2graph, Detectron, Flask, and Keras. The results demonstrated that our approach is feasible to construct call graphs and hierarchically cluster them into abstraction levels with proper labels. Gharib Gharibi, Rakan Alanazi, Yugyung Lee |
IEEE BigData | 1 |
| 2018 | Code2graph: automatic generation of static call graphs for Python source codeabstractA static call graph is an imperative prerequisite used in most interprocedural analyses and software comprehension tools. However, there is a lack of software tools that can automatically analyze the Python source-code and construct its static call graph. In this paper, we introduce a prototype Python tool, named code2graph, which automates the tasks of (1) analyzing the Python source-code and extracting its structure, (2) constructing static call graphs from the source code, and (3) generating a similarity matrix of all possible execution paths in the system. Our goal is twofold: First, assist the developers in understanding the overall structure of the system. Second, provide a stepping stone for further research that can utilize the tool in software searching and similarity detection applications. For example, clustering the execution paths into a logical workflow of the system would be applied to automate specific software tasks. Code2graph has been successfully used to generate static call graphs and similarity matrices of the paths for three popular open-source Deep Learning projects (TensorFlow, Keras, PyTorch). A tool demo is available at https://youtu.be/ecctePpcAKU. Gharib Gharibi, Rashmi Tripathi, Yugyung Lee |
ASE | 1 |