Research

We conduct research in a broad range of topics in the areas of programming languages and software engineering including: compilation, optimization, and verification for parallel and distributed systems; static and dynamic analysis for bug location and security; logic and stochastic verification etc.

Recent Publications

JetStream: Graph Analytics on Streaming Data with Event-Driven Hardware Accelerator
Shafiur Rahman, Mahbod Afarin, Nael Abu-Ghazaleh, and Rajiv Gupta
Proceedings of the 54th IEEE/ACM International Symposium on Microarchitecture (MICRO), pages 1091–1105, October 2021.

GO: Out-Of-Core Partitioning of Large Irregular Graphs
Gurneet Kaur and Rajiv Gupta
Proceedings of the 15th IEEE International Conference on Networking, Architecture, and Storage (NAS), pages 9-18, October 2021.

Lightweight and Modular Resource Leak Verification
Martin Kellogg*, Narges Shadab*, Manu Sridharan, and Michael D. Ernst
Proceedings of the ACM Joint European Software Engineering Conference and Symposium on the Foundations of Software Engineering (ESEC/FSE), August 2021.
(* co-primary authors)

G-Morph: Induced Subgraph Isomorphism Search of Labeled Graphs on a GPU
Bryan Rowe and Rajiv Gupta
Proceedings of the 27th International European Conference on Parallel and Distributed Computing (Euro-Par), LNCS, volume 12820, Springer, pages 402-417, September 2021.

VRGQ: Evaluating a Stream of Iterative Graph Queries via Value Reuse
Xiaolin Jiang, Chengshuo Xu, and Rajiv Gupta
ACM SIGOPS Operating Systems Review, special issue on Graph Computing (SIGOPS), Volume 55, Issue 1, pages 11-20, July 2021 (invited paper).

DSGEN: Concolic Testing GPU Implementations of Concurrent Dynamic Data Structures
Xiaofan Sun and Rajiv Gupta
Proceedings of the 35th ACM International Conference on Supercomputing (ICS), pages 75-87, June 2021.

Demanded Abstract Interpretation
Benno Stein, Bor-Yuh Evan Chang, and Manu Sridharan
Proceedings of the 42nd ACM SIGPLAN Conference on Programming Language Design and Implementation (PLDI), 2021.

Tripoline: Generalized Incremental Graph Processing via Graph Triangle Inequality
Xiaolin Jiang*, Chengshuo Xu*, Xizhe Yin*, Zhijia Zhao, and Rajiv Gupta
Proceedings of the European Conference on Computer Systems (EuroSys), pages 17-32, April 2021. (* co-primary authors)

Scalable FSM Parallelization via Path Fusion and Higher-Order Speculation
Junqiao Qiu, Xiaofan Sun, Amir Hossien Nodehi Sabet, and Zhijia Zhao
Proceedings of the 26th International Conference on Architectural Support for Programming Languages and Operating System (ASPLOS), 2021.

Scalable Structural Index Construction for JSON Analytics
Lin Jiang, Junqiao Qiu, and Zhijia Zhao
Proceedings of the 47th International Conference on Very Large Data Bases (VLDB), 2021.

App-Aware Response Synthesis for User Reviews
Umar Farooq, A.B. Siddique, Fuad Jamour, Zhijia Zhao, and Vagelis Hristidis
Proceedings of the IEEE International Conference on Big Data (BigData), 2020.

BEAD: Batched Evaluation of Iterative Graph-Queries with Evolving Analytics Demands
Abbas Mazloumi, Chengshuo Xu, Zhijia Zhao, and Rajiv Gupta
Proceedings of the IEEE International Conference on Big Data (BigData), pages 461-468, 2020.

SimGQ: Simultaneously Evaluating Iterative Graph Queries
Chengshuo Xu, Abbas Mazloumi, Xiaolin Jiang, and Rajiv Gupta
Proceedings of the IEEE International Conference on High Performance Computing, Data,and Analytics (HiPC), page 1-10, 2020. Recipient of a Best Paper Award

LiveDroid: Identifying and Preserving Mobile App State in Volatile Runtime Environments
Umar Farooq, Zhijia Zhao, Manu Sridharan, and Iulian Neamtiu
Proceedings of the ACM on Programming Languages (PACMPL) (OOPSLA), 2020.

GraphPulse: An Event-Driven Hardware Accelerator for Asynchronous Graph Processing
Shafiur Rahman, Nael Abu-Ghazaleh, Rajiv Gupta
Proceedings of the 53rd IEEE/ACM International Symposium on Microarchitecture (MICRO), pages 908-921, 2020.

Temporal Logic of Composable Distributed Components
Jeremiah Griffin, Mohsen Lesani, Narges Shadab, Xizhe Yin
Proceedings of the ACM SIGPLAN International Conference on Functional Programming (ICFP), 2020.

Hampa: Solver-aided Recency-Aware Replication
Xiao Li, Farzin Houshmand, Mohsen Lesani
Proceedings of the International Conference on Computer-Aided Verification (CAV), 2020.

Cross-Chain Transactions
Narges Shadab, Farzin Houshmand, Mohsen Lesani
Proceedings of the IEEE International Conference on Blockchain and Cryptocurrency (ICBC), 2020.

Learning Quantitative Representation Synthesis
Mayur Patil, Farzin Houshmand, Mohsen Lesani
Proceedings of the ACM Machine Learning and Programming Languages Workshop (MAPL), 2020.

Subway: Minimizing Data Transfer during Out-of-GPU-Memory Graph Processing
A. Nodehi, Z. Zhao, and R. Gupta
Proceedings of the European Conference on Computer Systems (EuroSys), 2020.

Reliability Analysis for Unreliable FSM Computations
A. Nodehi, J. Qiu, Z. Zhao, and S. Krishnamoorthy
ACM Transactions on Architecture and Code Optimization (TACO), 2020.

Piranha: Reducing Feature Flag Debt at Uber
M. K. Ramanathan, L. Clapp, R. Barik, M. Sridharan
Proceedings of the 42nd ACM/IEEE International Conference on Software Engineering - Software Engineering In Practice (ICSE SEIP), May 2020.
download: https://github.com/uber/piranha

Verifying Object Construction
M. Kellogg, M. Ran, M. Sridharan, M. Schäf, M. D. Ernst
Proceedings of the 42nd ACM/IEEE International Conference on Software Engineering (ICSE), May 2020.
download: https://github.com/kelloggm/object-construction-checker

Challenging Sequential Bitstream Processing via Principled Bitwise Speculation
J. Qiu, L. Jiang, and Z. Zhao
Proceedings of the 25th International Conference on Architectural Support for Programming Languages and Operating System (ASPLOS), March 2020.
Recipient of a Best Paper Award

MultiLyra: Scalable Distributed Evaluation of Batches of Iterative Graph Queries
A. Mazloumi, X. Jiang, and R. Gupta
Proceedings of the IEEE International Conference on Big Data (IEEE BigData), pages 349-358, Los Angeles, CA, December 2019.

Polynomial-time Fence Insertion For Structured Programs
M. Taheri, A. Pourdamghani, and M. Lesani
Proceedings of the 33rd International Symposium on Distributed Computing (DISC). Schloss Dagstuhl-Leibniz-Zentrum fuer Informatik, Article 34, 17 pages, October 2019.

Optimization of Swift Protocols
R. Barik, M. Sridharan, M. K. Ramanathan, M. Chabbi
Proceedings of the ACM on Programming Languages (PACMPL), Volume 3, Issue OOPSLA, 27 pages, October 2019.

DProf: Distributed Profiler with Strong Guarantees
Z. Benavides, K. Vora, and R. Gupta
Proceedings of the ACM on Programming Languages (PACMPL), Volume 3, Issue OOPSLA, Article 156, 24 pages, October 2019.

Annotation Guided Collection of Context-Sensitive Parallel Execution Profiles
Z. Benavides, K. Vora, R. Gupta, and X. Zhang
Formal Methods in System Design (FMSD), Springer, 28 pages, special issue of extended versions of best papers from RV 2017, appeared online October 2019.

When The Attacker Knows A Lot: The GAGA Graph Anonymizer
A. Alavi, R. Gupta, and Z. Qian
Proceedings of the 22nd Information Security Conference (ISC), LNCS 22723, Springer, Pages 211-230, September 2019.

NullAway: Practical Type-Based Null Safety for Java
S. Banerjee, L. Clapp, and M. Sridharan
Proceedings of the 27th ACM Joint European Software Engineering Conference and Symposium on the Foundations of Software Engineering (ESEC/FSE), August 2019.
download: https://github.com/uber/NullAway

Dynamic Slicing for Android
T. Azim, A. Alavi, I. Neamtiu, and R. Gupta
Proceedings of the 41st ACM/IEEE International Conference on Software Engineering (ICSE), Pages 1154-1164, May 2019.
download: https://github.com/archer29m/AndroidSlicer

Transaction Protocol Verification with Labeled Synchronization Logic
M. Lesani
NASA Formal Methods Symposium (NFM), Springer, Cham, 14 pages, May 2019.

Scalable Processing of Contemporary Semi-Structured Data on Commodity Parallel Processors - A Compilation-based Approach
L. Jiang, X. Sun, U. Farooq, and Z. Zhao
Proceedings of the ACM 24th International Conference on Architectural Support for Programming Languages and Operating Systems (ASPLOS), 14 Pages, April 2019.

PnP: Pruning and Prediction for Point-To-Point Iterative Graph Analytics
C. Xu, K. Vora, and R. Gupta
Proceedings of the ACM 24th International Conference on Architectural Support for Programming Languages and Operating Systems (ASPLOS), Pages 587-600, April 2019.

Transforming Query Sequences for High-Throughput B+ Tree Processing on Many-core Processors
R. Tian, J. Qiu, Z. Zhao, X. Liu, and B. Ren
Proceedings of International Symposium on Code Generation and Optimization (CGO), 14 Pages, Feb. 2019.

White-Box Program Tuning
W-C. Lee, Y. Liu, P. Liu, S. Ma, H.J. Choi, X. Zhang, and R. Gupta
Proceedings of International Symposium on Code Generation and Optimization (CGO), Pages 122-135, Feb. 2019.

Efficient Concolic Testing for MPI Applications
H. Li, Z. Chen, and R. Gupta
Proceedings of the International Conference on Compiler Construction (CC), Pages 193-204, Feb. 2019.

Hamsaz: Replication Coordination Analysis and Synthesis
F. Houshmand and M. Lesani
Proceedings of the ACM on Programming Languages (PACMPL), Volume 3, Issue POPL, Article 74, 32 pages, Jan. 2019.

BioScript: programming safe chemistry on laboratories-on-a-chip
J. Ott, T. Loveless, C. Curtis, M. Lesani, and P. Brisk
Proceedings of the ACM on Programming Languages (PACMPL), Volume 2, Issue OOPSLA, Article 128, October 2018.

Safe Stream-Based Programming with Refinement Types
B. Stein, L. Clapp, M. Sridharan, and B.Y.E. Chang
Proceedings of the ACM/IEEE International Conference on Automated Software Engineering (ASE), 12 pages, August 2018.

RuntimeDroid: Restarting-Free Runtime Change Handling for Android Apps
U. Farooq and Z. Zhao
Proceedings of the ACM International Conference on Mobile Systems, Applications, and Services (MobiSys), 12 pages, June 2018.

OMR: Out-of-Core MapReduce for Large Data Sets
G. Kaur, K. Vora, S-C. Koduru, and R. Gupta
Proceedings of the International Symposium on Memory Management (ISMM), pages 71-83, June 2018. download: https://github.com/kevalvora/omr

COMPI: Concolic Testing for MPI Applications
H. Li, S. Li, Z. Benavides, Z. Chen, and R. Gupta
Proceedings of the IEEE International Parallel and Distributed Processing Symposium (IPDPS), pages 865-874, May 2018.

Tigr: Transforming Irregular Graphs for GPU-Friendly Graph Processing
A. Nodehi, J. Qiu, and Z. Zhao
Proceedings of the ACM 23nd International Conference on Architectural Support for Programming Languages and Operating Systems (ASPLOS), Pages 622-636, March 2018.

ParaStack: Efficient Hang Detection for MPI Programs at Large Scale
H. Li, Z. Chen, and R. Gupta
Proceedings of the ACM/IEEE International Conference for High Performance Computing, Networking, Storage and Analysis (SC), Article No. 63, 12 pages, November 2017.

IoTa: a calculus for internet of things automation
J. Newcomb, S. Chandra, J.B. Jeannin, C. Schlesinger, M. Sridharan
Proceedings of the ACM SIGPLAN International Symposium on New Ideas, New Paradigms, and Reflections on Programming and Software (Onward!), 14 pages, October 2017.

Annotation Guided Collection of Context-Sensitive Parallel Execution Profiles
Z. Benavides, R. Gupta, and X. Zhang
Proceedings of the International Conference on Runtime Verification (RV), Pages 103-120, September 2017.

Finding fix locations for CFL-reachability analyses via minimum cuts.
A. Dan, M. Sridharan, S. Chandra, J. B. Jeannin, M. Vechev
Proceedings of the Computer-Aided Verification (CAV), 22 pages, July 2017.

Repairing event race errors by controlling nondeterminism.
C. Adamsen, A. Moller, R. Karim, M. Sridharan, F. Tip, K. Sen
Proceedings of the 39th International Conference on Software Engineering (ICSE), 11 pages, May 2017.

KickStarter: Fast and Accurate Computations on Streaming Graphs via Trimmed Approximations
K. Vora, R. Gupta, and G. Xu
Proceedings of the ACM 22nd International Conference on Architectural Support for Programming Languages and Operating Systems (ASPLOS), Pages 237-251, April 2017.

CoRAL: Confined Recovery in Distributed Asynchronous Graph Processing
K. Vora, C. Tian, R. Gupta, and Z. Hu
Proceedings of the ACM 22nd International Conference on Architectural Support for Programming Languages and Operating Systems (ASPLOS), Pages 223-236, April 2017.

Enabling Scalability-Sensitive Speculative Parallelization for FSM Computations
J. Qiu, Z. Zhao, B. Wu, A. Vishnu, and S. Song
Proceedings of the ACM International Conference on Supercomputing (ICS), Article No. 2, 10 pages, June 2017.

Grammar-aware Parallelization for Scalable XPath Querying
L. Jiang and Z. Zhao
Proceedings of the ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming (PPoPP), Pages 371-383, Feb 2017.

Synergistic Analysis of Evolving Graphs
K. Vora, R. Gupta, and G. Xu
ACM Transactions on Architecture and Code Optimization (TACO), Volume 13, Issue 4, Article No. 32, 27 pages, October 2016.

Proving Concurrent Data Structures Linearizable
V. Singh, I. Neamtiu, and R. Gupta
Proceedings of the 27th IEEE International Symposium on Software Reliability Engineering (ISSRE), 11 pages, October 2016.

Load the Edges You Need: A Generic I/O Optimization for Disk-based Graph Processing
K. Vora, G. Xu, and R. Gupta
Proceedings of the USENIX Annual Technical Conference (USENIX ATC), pages 507-522, June 2016.

Efficient Processing of Large Graphs via Input Reduction
A. Kusum, K. Vora, R. Gupta, and I. Neamtiu
Proceedings of the International ACM Symposium on High Performance Parallel and Distributed Computing (HPDC), pages 245-257, June 2016.

Parallel Execution Profiles
Z. Benavides, R. Gupta, and X. Zhang
Proceedings of the International ACM Symposium on High Performance Parallel and Distributed Computing (HPDC), pages 215-218, June 2016.

CuMAS: Data Transfer Aware Multi-Application Scheduling for Shared GPUs
M. Belviranli, F. Khorasani, L.N. Bhuyan, and R. Gupta
Proceedings of the ACM International Conference on Supercomputing (ICS), 12 pages, June 2016.

Eliminating Intra-warp Load Imbalance in Irregular Nested Patterns via Collaborative Task Engagement
F. Khorasani, B. Rowe, R. Gupta, and L.N. Bhuyan
Proceedings of the IEEE International Parallel and Distributed Processing Symposium (IPDPS), pages 524-533, May 2016.

Automatic Fault Location for Data Structures
V. Singh, R. Gupta, and I. Neamtiu
Proceedings of the 25th International Conference on Compiler Constructione (CC), pages 99-109, March 2016.

Safe and Flexible Adaptation Via Alternate Data Structure Representations
A. Kusum, I. Neamtiu, and R. Gupta
Proceedings of the 25th International Conference on Compiler Constructione (CC), pages 34-44, March 2016.

Tumbler: An Effective Load Balancing Technique for MultiCPU Multicore Systems
K.K. Pusukuri, R. Gupta, and L.N. Bhuyan
ACM Transactions on Architecture and Code Optimization (TACO), Volume 12, Issue 4, Article No. 36, 24 pages, January 2016.

Efficient Warp Execution in Presence of Divergence with Collaborative Context Collection
F. Khorasani, R. Gupta, and L.N. Bhuyan
Proceedings of the IEEE/ACM 48th International Symposium on Microarchitecture (MICRO), pages 204-215, December 2015.

Experience Report: How Do Bug Characteristics Differ Across Severity Classes: A Multi-platform Study
B. Zhou, I. Neamtiu, and R. Gupta
Proceedings of the 26th IEEE International Symposium on Software Reliability Engineering (ISSRE), pages 507-517, November 2015.

RAIVE: Runtime Assessment of Floating-Point Instability by Vectorization
W-C. Lee, T. Bao, Y. Zheng, X. Zhang, K. Vora, and R. Gupta
Proceedings of the ACM Conference on Object-Oriented Programming, Systems, Languages & Applications (OOPSLA), pages 623-638, October 2015.

Scalable SIMD-Efficient Graph Processing on GPUs
F. Khorasani, R. Gupta, and L.N. Bhuyan
Proceedings of the 24th International Conference on Parallel Architectres and Compilation Techniques (PACT), pages 39-50, October 2015.

Stadium Hashing: Scalable and Flexible Hashing on GPUs
F. Khorasani, M. Belviranli, R. Gupta, and L.N. Bhuyan
Proceedings of the 24th International Conference on Parallel Architectres and Compilation Techniques (PACT), pages 63-74, October 2015.

Size Oblivious Programming with InfiniMem
S-C. Koduru, R. Gupta, and I. Neamtiu
Proceedings of the 28th International Workshop on Languages and Compilers for Parallel Computing (LCPC), 15 pages, September 2015.
Recipient of Best Student Paper Award.

Optimizing Caching DSM for Distributed Software Speculation
S-C. Koduru, K. Vora, and R. Gupta
Proceedings of the IEEE International Conference on Cluster Computing (CLUSTER), pages 452-455, Sept. 2015.

PeerWave: Exploiting Wavefront Parallelism on GPUs with Peer-SM Synchronization
M. Belviranli, P. Deng, L.N. Bhuyan, R. Gupta, and Q. Zhu
Proceedings of the ACM International Conference on Supercomputing (ICS), pages 25-35, June 2015.

Predicting Concurrency Bugs: How Many, What Kind and Where Are They?
B. Zhou, I. Neamtiu, and R. Gupta
Proceedings of the 19th International Conference on Evaluation and Assessment in Software Engineering (EASE), Article 6, 10 pages, April 2015.

A Cross-platform Analysis of Bugs and Bug-fixing in Open Source Projects: Desktop vs. Android vs. iOS
B. Zhou, I. Neamtiu, and R. Gupta
Proceedings of the 19th International Conference on Evaluation and Assessment in Software Engineering (EASE), Article 7, 10 pages, April 2015.

MG++: Memory Graphs for Analyzing Dynamic Data Structures
V. Singh, R. Gupta, and I. Neamtiu
Proceedings of the 22nd IEEE International Conference on Software Analysis, Evolution, and Reengineering (SANER), pages 291-300, March 2015.

Fence Scoping
C. Lin, V. Nagarajan, and R. Gupta
Proceedings of the ACM/IEEE International Conference for High Performance Computing, Networking, Storage and Analysis (SC), pages 105-116, November 2014.

ASPIRE: Exploiting Asynchronous Parallelism in Iterative Algorithms using a Relaxed Consistency based DSM
K. Vora, S-C. Koduru, and R. Gupta
Proceedings of the ACM Conference on Object-Oriented Programming, Systems, Languages & Applications (OOPSLA), pages 861-878, October 2014.

Determining Developers' Expertise and Role: A Graph Hierarchy-based Approach
P. Bhattacharya, I. Neamtiu, and M. Faloutsos
Proceedings of the 30th International Conference on Software Maintenance and Evolution (ICSME), September 2014.

Shuffling: A Framework for Lock Contention Aware Thread Scheduling for Multicore Multiprocessor Systems
K.K. Pusukuri, R. Gupta, and L.N. Bhuyan
Proceedings of the 23rd International Conference on Parallel Architectres and Compilation Techniques (PACT), pages 289-300, August 2014.

CuSha: Vertex-Centric Graph Processing on GPUs
F. Khorasani, K. Vora, R. Gupta, and L.N. Bhuyan
Proceedings of the International ACM Symposium on High Performance Parallel and Distributed Computing (HPDC), pages 239-251, June 2014.
download: http://farkhor.github.io/CuSha/

DrDebug: Deterministic Replay based Cyclic Debugging with Dynamic Slicing
Y. Wang, H. Patil, C. Pereira, G. Lueck, R. Gupta, and I. Neamtiu
Proceedings of the IEEE/ACM International Symposium on Code Generation and Optimization (CGO),
pages 98-108, March 2014.



Footer