Research

We conduct research in a broad range of topics in the areas of programming languages and software engineering: compilation and optimization for parallel systems, fault localization using dynamic analysis, logic and stochastic verification, dynamic software updating, understanding software evolution, smartphone security.

Recent Publications

Proving Concurrent Data Structures Linearizable
V. Singh, I. Neamtiu, and R. Gupta
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
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
International ACM Symposium on High Performance Parallel and Distributed Computing (HPDC), pages 245-257, June 2016.

CuMAS: Data Transfer Aware Multi-Application Scheduling for Shared GPUs
M. Belviranli, F. Khorasani, L.N. Bhuyan, and R. Gupta
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
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
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
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
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
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
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
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
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
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
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
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
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
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
22nd IEEE International Conference on Software Analysis, Evolution, and Reengineering (SANER), pages 291-300, March 2015.

Adapting Graph Application Performance Via Alternate Data Structure Representations
A. Kusum, I. Neamtiu, and R. Gupta
5th International Workshop on Adaptive Self-tuning Computing Systems. (ADAPT), 7 pages, January 2015.

Fence Scoping
C. Lin, V. Nagarajan, and R. Gupta
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
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
30th International Conference on Software Maintenance and Evolution (ICSME), September 2014.

LightPlay: Efficient Replay with GPUs
M. Feng, F. Khorasani, R. Gupta, and L.N. Bhuyan
27th International Workshop on Languages and Compilers for Parallel Computing (LCPC), 15 pages, September 2014.

Optimistic Parallelism on GPUs
M. Feng, R. Gupta, and L.N. Bhuyan
27th International Workshop on Languages and Compilers for Parallel Computing (LCPC), 15 pages, September 2014.

Shuffling: A Framework for Lock Contention Aware Thread Scheduling for Multicore Multiprocessor Systems
K.K. Pusukuri, R. Gupta, and L.N. Bhuyan
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
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
IEEE/ACM International Symposium on Code Generation and Optimization (CGO),
pages 98-108, March 2014.

Relevant Inputs Analysis and its Applications
Y. Wang, R. Gupta, and I. Neamtiu
The 24th IEEE International Symposium on Software Reliability Engineering (ISSRE), pages 268-277, November 2013.

Targeted and Depth-first Exploration for Systematic Testing of Android Apps
T. Azim and I. Neamtiu
ACM Conference on Object-Oriented Programming, Systems, Languages & Applications (OOPSLA), pages 641-660, October 2013.

Programming Large Dynamic Data Structures on a DSM Cluster of Multicores
S-C. Koduru, M. Feng, and R. Gupta
7th International Conference on PGAS Programming Models (PGAS), pages 126-141, October 2013.

A State-Alteration and Inspection-based Interactive Debugger
Y. Wang, M. Feng, R. Gupta, and I. Neamtiu
13th International Working Conference on Source Code Analysis and Manipulation (SCAM), pages 84-93, September 2013.

Generating Sound and Effective Memory Debuggers
Y. Wang, I. Neamtiu, and R. Gupta
International Symposium on Memory Management (ISMM), pages 51-62, June 2013.

Address-aware Fences
C. Lin, V. Nagarajan, and R. Gupta
ACM 27th International Conference on Supercomputing (ICS), pages 313-324, June 2013.

RERAN: Timing- and Touch-Sensitive Record and Replay for Android
L. Gomez, I. Neamtiu, T. Azim and T. Millstein
International Conference on Software Engineering (ICSE), May 2013.

Programming Support for Speculative Execution with Software Transactional Memory
M. Feng, R. Gupta, and I. Neamtiu
Workshop on High-Level Parallel Programming Models and Supportive Environments (HIPS), pages 394-403, in IEEE IPDPSW Proceedings, May 2013.

Lightweight Fault Detection in Parallelized Programs
L. Tan, M. Feng, and R. Gupta
IEEE/ACM International Symposium on Code Generation and Optimization (CGO), pages 1-11, Shenzhen, China, February 2013.

ADAPT: A Framework for Coscheduling Multithreaded Programs
K.K. Pusukuri, R. Gupta, and L.N. Bhuyan
ACM Transactions on Architecture and Code Optimization (TACO), presented at HiPEAC, 25 pages, January 2013.

A Dynamic Self Scheduling Scheme for Heterogeneous Multiprocessor Architectures
M.E. Belviranli, L.N. Bhuyan, and R. Gupta
ACM Transactions on Architecture and Code Optimization (TACO), presented at HiPEAC, 20 pages, January 2013.

Effective Parallelization of Loops in the Presence of I/O Operations
M. Feng, R. Gupta, and I. Neamtiu
ACM Conference on Programming Language Design and Implementation (PLDI), June 2012.

Graph-based Analysis and Prediction for Software Evolution
P. Bhattacharya, M. Iliofotou, I. Neamtiu, and M. Faloutsos
International Conference on Software Engineering (ICSE), June 2012.

Efficient Sequential Consistency via Conflict Ordering
C. Lin, V. Nagarajan, R. Gupta, and B. Rajaram
ACM International Conference on Architectural Support for Programming Languages and Operating Systems (ASPLOS), London, UK, March 2012.

PLDS: Partitioning Linked Data Structures for Parallelism
M. Feng, C. Lin, and R. Gupta
ACM Transactions on Architecture and Code Optimization (TACO), presented at HiPEAC, January 2012.

Thread Tranquilizer: Dynamically Reducing Performance Variation
K.K. Pusukuri, R. Gupta, and L.N. Bhuyan
ACM Transactions on Architecture and Code Optimization (TACO), presented at HiPEAC, January 2012.

Thread Reinforcer: Dynamically Determining Number of Threads via OS Level Monitoring
K.K. Pusukuri, R. Gupta, L.N. Bhuyan
IEEE International Symposium on Workload Characterization (IISWC), Austin, Texas, November 2011.

No More Backstabbing... A Faithful Scheduling Policy for Multithreaded Programs
K.K. Pusukuri, R. Gupta, L.N. Bhuyan
The 20th International Conference on Parallel Architectres and Compilation Techniques (PACT), Galveston Island, Texas, October 2011.

Dynamic Access Distance Driven Cache Replacement
M. Feng, C. Tian, C. Lin, and R. Gupta
ACM Transactions on Architecture and Code Optimization (TACO), October 2011.

A System for Debugging via Online Tracing and Dynamic Slicing
V. Nagarajan, D. Jeffrey, R. Gupta, and N. Gupta
Software - Practice & Experience (SPE), published online, July 2011.

Isolating Bugs in Multithreaded Programs Using Execution Suppression
D. Jeffrey, Y. Wang, C. Tian, and R. Gupta
Software - Practice & Experience (SPE), October 2011.

Assessing Programming Language Impact on Development and Maintenance: A Study on C and C++
P. Bhattacharya and I. Neamtiu
International Conference on Software Engineering (ICSE), May 2011.

Enhanced Speculative Parallelization Via Incremental Recovery
C. Tian, C. Lin, M. Feng, and R. Gupta
16th ACM SIGPLAN Annual Symposium on Principles and Practices of Parallel Programming (PPoPP), San Anotonio, Texas, February 2011.

SpiceC: Scalable parallelism via implicit copying and explicit Commit
M. Feng, R. Gupta, and Y. Hu
16th ACM SIGPLAN Annual Symposium on Principles and Practices of Parallel Programming (PPoPP), San Anotonio, Texas, February 2011.

Fine-grained Incremental Learning and Multi-feature Tossing Graphs to Improve Bug Triaging
P. Bhattacharya and I. Neamtiu
IEEE Conference on Software Maintenance (ICSM), September 2010.

Efficient Sequential Consistency Using Conditional Fences
C. Lin, V. Nagarajan, and R. Gupta
19th International Conference on Parallel Architectures and Compilation Techniques (PACT), Vienna, Austria, September 2010.
Extended version in IJPP special issue of Best Papers from PACT 2010.

Dynamic Updates for Web and Cloud Applications
P. Bhattacharya and I. Neamtiu
Workshop on Analysis and Programming Languages for Web Applications and Cloud Applications (APLWACA), Toronto, Canada, June 2010.

Supporting Speculative Parallelization in the Presence of Dynamic Data Structures
C. Tian, M. Feng, and R. Gupta
ACM SIGPLAN Conference on Programming Language Design and Implementation (PLDI), Toronto, Canada, June 2010.

Speculative Parallelization Using State Separation and Multiple Value Prediction
C. Tian, M. Feng, and R. Gupta
Ninth International Symposium on Memory Management (ISMM), Toronto, Canada, June 2010.

Learning Universal Probabilistic Models for Fault Localization
M. Feng and R. Gupta
Ninth ACM SIGPLAN-SIGSOFT Workshop on Program Analysis for Software Tools and Engineering (PASTE), Toronto, Canada, June 2010.

Execution Supression: An Automated Iterative Technique for locating Memory Errors
D. Jeffrey, V. Nagarajan, R. Gupta, and N. Gupta
ACM Transactions on Programming Languages and Systems (TOPLAS), May 2010.

Detecting Virus Mutations Via Dynamic Matching
M. Feng and R. Gupta
25th IEEE Conference on Software Maintenance (ICSM), September 2009.

Effective and Efficient Localization of Multiple Faults Using Value Replacement
D. Jeffrey, N. Gupta, and R. Gupta
25th IEEE Conference on Software Maintenance (ICSM), September 2009.

Towards a Better Understanding of Software Evolution: An Empirical Study on Open Source Software
G. Xie, J. Chen, and I. Neamtiu
25th IEEE Conference on Software Maintenance (ICSM), September 2009.

ECMon: Exposing Cache Events for Monitoring
V. Nagarajan and R. Gupta
36th ACM/IEEE International Symposium on Computer Architecture (ISCA), Austin, Texas, June 2009.

Self-Recovery in Server Programs
V. Nagarajan, D. Jeffrey and R. Gupta
8th International Symposium on Memory Management (ISMM), Dublin, Ireland, June 2009.

Safe and Timely Dynamic Updates for Multi-threaded Programs
I. Neamtiu and M. Hicks
ACM Conference on Programming Language Design and Implementation (PLDI), Dublin, Ireland, June 2009.

BugFix: A Learning-Based Tool to Assist Developers in Fixing Bugs
D. Jeffrey, M. Feng, N. Gupta, and R. Gupta
17th IEEE International Conference on Program Comprehension (ICPC), Vancouver, Canada, May 2009.

Runtime Monitoring on Multicores via OASES
V. Nagarajan and R. Gupta
ACM SIGOPS Operating Systems Review, special issue on the interaction among the OS, Compilers, and Multicore Processors, pages 15-24, Vol. 43, No. 2, April 2009 (Invited Paper).

Architectural Support for Shadow Memory in Multiprocessors
V. Nagarajan and R. Gupta
ACM SIGPLAN/SIGOPS International Conference on Virtual Execution Environments (VEE), Washington DC, March 2009.

Finding and reproducing Heisenbugs in concurrent programs
M. Musuvathi, S. Qadeeer, T. Ball, G. Basler, P. A. Nainar, and I. Neamtiu
The 8th USENIX Symposium on Operating System Design and Implementation (OSDI), San Diego, Dec. 2008

Copy Or Discard Execution Model For Speculative Parallelization On Multicores
C. Tian, M. Feng, V. Nagarajan, and R. Gupta
IEEE/ACM 41th International Symposium on Microarchitecture (MICRO), pages 330-341, Lake Como, Italy, Nov. 2008.

Fault Localization Using Value Replacement
D. Jeffrey, N. Gupta, and R. Gupta
International Symposium on Software Testing and Analysis (ISSTA), pages 167-178, Seattle, July 2008.

Dynamic Recognition of Synchronization Operations for Improved Data Race Detection
C. Tian, V. Nagarajan, R. Gupta, and S. Tallam
International Symposium on Software Testing and Analysis (ISSTA), pages 143-154, Seattle, July 2008.

Contextual Effects for Version-Consistent Dynamic Software Updating and Safe Concurrent Programming
I. Neamtiu, M. Hicks, J. Foster, and P. Pratikakis
ACM Conference on Principles of Programming Languages (POPL), pages 37-49, San Francisco, January 2008.

Unified Control Flow and Dependence Traces
S. Tallam and R. Gupta
ACM Transactions on Architecture and Code Optimization (TACO), Vol. 4, No. 3, 31 pages, September 2007.

ONTRAC: A System for Efficient ONline TRACing for Debugging
V. Nagarajan, D. Jeffrey, R. Gupta, and N. Gupta
International Conference on Software Maintenance (ICSM), pages 445-454, Paris, September 2007.

Matching Control Flow of Program Versions
V. Nagarajan, R. Gupta, X. Zhang, M. Madou, B. De Sutter, and K. De Bosschere
International Conference on Software Maintenance (ICSM), pages 84-93, Paris, September 2007.

Enabling Tracing of Long-Running Multithreaded Programs via Dynamic Execution Reduction
S. Tallam, C. Tian, X. Zhang, and R. Gupta
International Symposium on Software Testing and Analysis (ISSTA), pages 207-218, London, July 2007.

Locating Faulty Code By Multiple Points Slicing
X. Zhang, N. Gupta, and R. Gupta
Software - Practice & Experience (SPE), Vol. 37, Issue 9, pages 935-961, July 2007.

Towards Locating Execution Omission Errors
X. Zhang, S. Tallam, N. Gupta, and R. Gupta
ACM SIGPLAN Conference on Programming Language Design and Implementation (PLDI), pages 415-424, San Diego, June 2007.

A Study of Effectiveness of Dynamic Slicing in Locating Real Faults
X. Zhang, N. Gupta, and R. Gupta
Empirical Software Engineering Journal (ESE), Vol. 12, No. 2, pages 143-160, April 2007.


 


Footer