Demo Data from VLDB 2026 / reviewers in the wild / expert
Min Feng 0001
dblp:04/3799-1
· DBLP profile ↗
24ranked-venue papers
7as first author
1since 2021 · last 2021
0000-0002-0107-0196ORCID · corroborated
Domains — the database's venue-derived domains; a paper can count in several
Systems, architecture and hardware · 13 · 4 first-authorSoftware engineering, systems software and programming languages · 8 · 3 first-authorComputer networks · 3Artificial intelligence and machine learning · 1 · 1 since 2021Applied, interdisciplinary, general and emerging computing · 1 · 1 since 2021
Expertise — from the expertise taxonomy: the topics of the expert's papers under the CCF categories. A weight counts papers with recency: 1 for a paper about the topic, 0.3 when the topic is its context, halved every five years.
| Computer architecture, parallel and distributed computing, and storage systems
13 papers |
Parallel and multicore computing · 37% Distributed systems · 33% GPUs and heterogeneous computing · 13% | |
| Software engineering, system software, and programming languages
6 papers |
Compilers and program optimization · 85% Concurrent programming · 15% |
Topics — the 23 heaviest of 29, each with the papers that count most for it
| Topic | Weight | Papers | Last | Evidence papers |
|---|---|---|---|---|
Parallel and multicore computing
speculative parallelization |
0.6 | 6 | 2012 | PLDS: Partitioning linked data structures for parallelism · ACM Trans. Archit. Code Optim. 2012 Speculative parallelization on GPGPUs · PPoPP 2012 Enhanced speculative parallelization via incremental recovery · PPoPP 2011 |
Distributed systems
peer-to-peer systems |
0.3 | 3 | 2012 | Maintaining Data Consistency in Structured P2P Systems · IEEE Trans. Parallel Distributed Syst. 2012 A Balanced Consistency Maintenance Protocol for Structured P2P Systems · INFOCOM 2010 Budget-Based Self-Optimized Incentive Search in Unstructured P2P Networks · INFOCOM 2009 |
Parallel and multicore computing
parallel programming models |
0.3 | 2 | 2012 | PLDS: Partitioning linked data structures for parallelism · ACM Trans. Archit. Code Optim. 2012 SpiceC: scalable parallelism via implicit copying and explicit commit · PPoPP 2011 |
Distributed systems › peer-to-peer systems › overlay networks
structured overlay |
0.3 | 2 | 2012 | Maintaining Data Consistency in Structured P2P Systems · IEEE Trans. Parallel Distributed Syst. 2012 A Balanced Consistency Maintenance Protocol for Structured P2P Systems · INFOCOM 2010 |
Parallel and multicore computing
data distribution |
0.1 | 1 | 2012 | PLDS: Partitioning linked data structures for parallelism · ACM Trans. Archit. Code Optim. 2012 |
GPUs and heterogeneous computing
GPU computing |
0.1 | 1 | 2012 | Speculative parallelization on GPGPUs · PPoPP 2012 |
Parallel and multicore computing › loop transformation
loop parallelization |
0.1 | 1 | 2012 | Effective parallelization of loops in the presence of I/O operations · PLDI 2012 |
Memory systems › cache management › cache replacement
adaptive replacement |
0.1 | 1 | 2011 | Dynamic access distance driven cache replacement · ACM Trans. Archit. Code Optim. 2011 |
Memory systems › cache management
cache replacement |
0.1 | 1 | 2011 | Dynamic access distance driven cache replacement · ACM Trans. Archit. Code Optim. 2011 |
Parallel and multicore computing › speculative parallelization
thread-level speculation |
0.1 | 1 | 2011 | Enhanced speculative parallelization via incremental recovery · PPoPP 2011 |
Compilers and program optimization › parallelization
speculative parallelization |
0.1 | 1 | 2010 | Supporting speculative parallelization in the presence of dynamic data structures · PLDI 2010 |
Distributed systems › replication
replica consistency |
0.1 | 1 | 2010 | A Balanced Consistency Maintenance Protocol for Structured P2P Systems · INFOCOM 2010 |
Distributed systems
replication |
0.1 | 1 | 2010 | A Balanced Consistency Maintenance Protocol for Structured P2P Systems · INFOCOM 2010 |
Network optimization and economics › mechanism design
incentive mechanism |
0.1 | 1 | 2009 | Budget-Based Self-Optimized Incentive Search in Unstructured P2P Networks · INFOCOM 2009 |
Distributed systems › peer-to-peer systems
unstructured overlay |
0.1 | 1 | 2009 | Budget-Based Self-Optimized Incentive Search in Unstructured P2P Networks · INFOCOM 2009 |
Processor architecture and microarchitecture
multicore design |
0.1 | 1 | 2008 | Copy or Discard execution model for speculative parallelization on multicores · MICRO 2008 |
Processor architecture and microarchitecture
speculative execution |
0.1 | 1 | 2008 | Copy or Discard execution model for speculative parallelization on multicores · MICRO 2008 |
Distributed systems
fault tolerance |
0.1 | 2 | 2012 | Maintaining Data Consistency in Structured P2P Systems · IEEE Trans. Parallel Distributed Syst. 2012 A Balanced Consistency Maintenance Protocol for Structured P2P Systems · INFOCOM 2010 |
GPUs and heterogeneous computing › GPU communication
host-device data transfer |
0.1 | 1 | 2014 | COMP: Compiler Optimizations for Manycore Processors · MICRO 2014 |
Memory systems
cache coherence |
0.0 | 1 | 2011 | SpiceC: scalable parallelism via implicit copying and explicit commit · PPoPP 2011 |
Memory systems › cache
cache miss reduction |
0.0 | 1 | 2011 | Dynamic access distance driven cache replacement · ACM Trans. Archit. Code Optim. 2011 |
Distributed systems › fault tolerance › failure recovery
node failure recovery |
0.0 | 1 | 2010 | A Balanced Consistency Maintenance Protocol for Structured P2P Systems · INFOCOM 2010 |
Distributed systems › peer-to-peer systems
file sharing |
0.0 | 1 | 2009 | Budget-Based Self-Optimized Incentive Search in Unstructured P2P Networks · INFOCOM 2009 |
Methods — techniques the papers use, named apart from their topics
source-to-source compilation · 0.4analytical modeling · 0.3speculative parallelization · 0.3speculation · 0.3misspeculation check · 0.3data partitioning · 0.3simulation · 0.3memory access optimization · 0.2data layout transformation · 0.2DOALL parallelism · 0.1state separation · 0.1speculative computation · 0.1incremental recovery · 0.1implicit copying · 0.1explicit commit · 0.1emulation · 0.1
| Year | Publication | Venue | Position |
|---|---|---|---|
| 2021 | F3S: Free Flow Fever ScreeningabstractIdentification of people with elevated body temperature can reduce or dramatically slow down the spread of infectious diseases like COVID-19. We present a novel fever-screening system, F3S, that uses edge machine learning techniques to accurately measure core body temperatures of multiple individuals in a free-flow setting. F3S performs real-time sensor fusion of visual camera with thermal camera data streams to detect elevated body temperature, and it has several unique features: (a) visual and thermal streams represent very different modalities, and we dynamically associate semantically-equivalent regions across visual and thermal frames by using a new, dynamic alignment technique that analyzes content and context in real-time, (b) we track people through occlusions, identify the eye (inner canthus), forehead, face and head regions where possible, and provide an accurate temperature reading by using a prioritized refinement algorithm, and (c) we robustly detect elevated body temperature even in the presence of personal protective equipment like masks, or sunglasses or hats, all of which can be affected by hot weather and lead to spurious temperature readings. F3S has been deployed at over a dozen large commercial establishments, providing contact-less, free-flow, real-time fever screening for thousands of employees and customers in indoors and outdoor settings. Kunal Rao, Giuseppe Coviello, Min Feng 0001, Biplob Debnath, Wang-Pin Hsiung, Murugan Sankaradass, Yi Yang 0018, Oliver Po, Utsav Drolia, Srimat T. Chakradhar |
SMARTCOMP | 3 |
| 2016 | HppCnn: A High-Performance, Portable Deep-Learning Library for GPGPUsabstractThe massively parallel computation capability has made GPGPUs a promising platform for convolutional neural networks (CNNs). In this paper, we present HppCnn, a CNN library achieves both the high performance and portability on GPGPUs. In HppCnn, we propose a novel three-step approach to implement convolutional kernels using Nvidia cuBLAS efficiently. To overcome limitations of our three-step approach, we improve cuBLAS by enabling nested parallelism, and implement a low-cost auto-tuning module to leveraging existing libraries in the runtime. The experiments show HppCnn achieves significant speedups over both other cuBLAS-based and hand-optimized solutions. The results also show our solution delivers near-optimal performance on GPUs with the portability. Yi Yang 0018, Min Feng 0001, Srimat T. Chakradhar |
ICPP | 2 |
| 2016 | Optimizing memory efficiency for deep convolutional neural networks on GPUsabstractLeveraging large data sets, deep Convolutional Neural Networks (CNNs) achieve state-of-the-art recognition accuracy. Due to the substantial compute and memory operations, however, they require significant execution time. The massive parallel computing capability of GPUs make them as one of the ideal platforms to accelerate CNNs and a number of GPU-based CNN libraries have been developed. While existing works mainly focus on the computational efficiency of CNNs, the memory efficiency of CNNs have been largely overlooked. Yet CNNs have intricate data structures and their memory behavior can have significant impact on the performance. In this work, we study the memory efficiency of various CNN layers and reveal the performance implication from both data layouts and memory access patterns. Experiments show the universal effect of our proposed optimizations on both single layers and various networks, with up to 27.9× for a single layer and up to 5.6× on the whole networks. Chao Li 0004, Yi Yang 0018, Min Feng 0001, Srimat T. Chakradhar, Huiyang Zhou |
SC | 3 |
| 2014 | Automating and optimizing data transfers for many-core coprocessorsabstractOrchestrating data transfers between CPUs and a coprocessor manually is cumbersome, particularly for multi-dimensional arrays and other data structures with multi-level pointers, which are common in scientific computations. This work describes a system that includes both compile-time and runtime solutions for this problem, with the overarching goal of improving programmer productivity while maintaining performance. Bin Ren 0002, Nishkam Ravi, Yi Yang 0018, Min Feng 0001, Gagan Agrawal, Srimat T. Chakradhar |
ICS | 4 |
| 2014 | COMP: Compiler Optimizations for Manycore ProcessorsabstractApplications executing on multicore processors can now easily offload computations to many core processors, such as Intel Xeon Phi coprocessors. However, it requires high levels of expertise and effort to tune such offloaded applications to realize high-performance execution. Previous efforts have focused on optimizing the execution of offloaded computations on many core processors. However, we observe that the data transfer overhead between multicore and many core processors, and the limited device memories of many core processors often constrain the performance gains that are possible by offloading computations. In this paper, we present three source-to-source compiler optimizations that can significantly improve the performance of applications that offload computations to many core processors. The first optimization automatically transforms offloaded codes to enable data streaming, which overlaps data transfer between multicore and many core processors with computations on these processors to hide data transfer overhead. This optimization is also designed to minimize the memory usage on many core processors, while achieving the optimal performance. The second compiler optimization re-orders computations to regularize irregular memory accesses. It enables data streaming and factorization on many core processors, even when the memory access patterns in the original source codes are irregular. Finally, our new shared memory mechanism provides efficient support for transferring large pointer-based data structures between hosts and many core processors. Our evaluation shows that the proposed compiler optimizations benefit 9 out of 12 benchmarks. Compared with simply offloading the original parallel implementations of these benchmarks, we can achieve 1.16x-52.21x speedups. Linhai Song, Min Feng 0001, Nishkam Ravi, Yi Yang 0018, Srimat T. Chakradhar |
MICRO | 2 |
| 2013 | Lightweight fault detection in parallelized programsabstractA popular approach for producing parallel software is to develop a sequential version of an application and then incrementally introduce parallel constructs to parallelize different parts of the application. During the parallelization process, programming errors may be introduced, causing concurrency bugs. In this paper we develop a technique for runtime detection of data dependence faults (i.e., data races and atomicity violations) introduced during parallelization. By leveraging the availability of two versions of the program, the sequential one and the parallelized one, we comparison check dynamic data dependences exercised during executions of the two versions to identify faults. To reduce the cost of comparison checking we develop three optimizations. The first optimization causes only a subset of dynamically exercised data dependences to be comparison checked. The second optimization shows that not all instances of a dynamically exercised data dependence need to be comparison checked. The third optimization shows that static analysis of parallelizing constructs can be exploited to eliminate the need for executing the parallelized version altogether. In addition, our solution is applicable when different program executions on the same input may follow different execution paths, it is effective in situations where the fault introduced manifests itself rarely during execution, and it is also effective in pinpointing the location of the fault in the program. We implemented and evaluated our approach using ten benchmarks. The experimental results indicate an average slowdown of 3× to perform fault detection. Min Feng 0001, Rajiv Gupta 0001 |
CGO | 2 |
| 2013 | A state alteration and inspection-based interactive debuggerabstractDespite significant advances in automated debugging, programmers still rely on traditional interactive debuggers (e.g., GDB) to find and fix bugs. While popular, these debuggers have major deficiencies: they do not guide the programmer in narrowing the source of error, and they only support a limited and low-level set of state-altering commands, hence semantic state alteration requires recompilation and reexecution. To address these shortcomings, we present an interactive debugger that combines capabilities that reduce debugging effort and increase debugging speed. The capabilities that yield these benefits include: state alteration commands for dynamically switching the directions of conditional branches and suppressing the execution of statements; state inspection commands including navigating and pruning dynamic slices; and state rollback and checkpointing commands to allow reexecution of the program from an earlier checkpoint. Our prototype is built on top of GDB using the Pin infrastructure; we also provide a GUI based on KDbg. Our experience shows that our debugger handles many kinds of real bugs effectively and efficiently. Min Feng 0001, Rajiv Gupta 0001, Iulian Neamtiu |
SCAM | 2 |
| 2012 | Effective parallelization of loops in the presence of I/O operationsabstractSoftware-based thread-level parallelization has been widely studied for exploiting data parallelism in purely computational loops to improve program performance on multiprocessors. However, none of the previous efforts deal with efficient parallelization of hybrid loops, i.e., loops that contain a mix of computation and I/O operations. In this paper, we propose a set of techniques for efficiently parallelizing hybrid loops. Our techniques apply DOALL parallelism to hybrid loops by breaking the cross-iteration dependences caused by I/O operations. We also support speculative execution of I/O operations to enable speculative parallelization of hybrid loops. Helper threading is used to reduce the I/O bus contention caused by the improved parallelism. We provide an easy-to-use programming model for exploiting parallelism in loops with I/O operations. Parallelizing hybrid loops using our model requires few modifications to the code. We have developed a prototype implementation of our programming model. We have evaluated our implementation on a 24-core machine using eight applications, including a widely-used genomic sequence assembler and a multi-player game server, and others from PARSEC and SPEC CPU2000 benchmark suites. The hybrid loops in these applications take 23%-99% of the total execution time on our 24-core machine. The parallelized applications achieve speedups of 3.0x-12.8x with hybrid loop parallelization over the sequential versions of the same applications. Compared to the versions of applications where only computation loops are parallelized, hybrid loop parallelization improves the application performance by 68% on average. Min Feng 0001, Rajiv Gupta 0001, Iulian Neamtiu |
PLDI | 1 |
| 2012 | Speculative parallelization on GPGPUsabstractThis paper overviews the first speculative parallelization technique for GPUs that can exploit parallelism in loops even in the presence of dynamic irregularities that may give rise to cross-iteration dependences. The execution of a speculatively parallelized loop consists of five phases: scheduling, computation, misspeculation check, result committing, and misspeculation recovery. We perform misspeculation check on the GPU to minimize its cost. We optimize the procedures of result committing and misspeculation recovery to reduce the result copying and recovery overhead. Finally, the scheduling policies are designed according to the types of cross-iteration dependences to reduce the misspeculation rate. Our preliminary evaluation was conducted on an nVidia Tesla C1060 hosted in an Intel(R) Xeon(R) E5540 machine. We use three benchmarks of which two contain irregular memory accesses and one contain irregular control flows that can give rise to cross-iteration dependences. Our implementation achieves 3.6x-13.8x speedups for loops in these benchmarks. Min Feng 0001, Rajiv Gupta 0001, Laxmi N. Bhuyan |
PPoPP | 1 |
| 2012 | P2P consistency support for large-scale interactive applications
Laxmi N. Bhuyan, Min Feng 0001 |
Comput. Networks | 3 |
| 2012 | Peer-to-peer indirect reciprocity via personal currency
Laxmi N. Bhuyan, Min Feng 0001 |
J. Parallel Distributed Comput. | 3 |
| 2012 | PLDS: Partitioning linked data structures for parallelismabstractRecently, parallelization of computations in the presence of dynamic data structures has shown promising potential. In this paper, we present PLDS, a system for easily expressing and efficiently exploiting parallelism in computations that are based on dynamic linked data structures. PLDS improves the execution efficiency by providing support for data partitioning and then distributing computation across threads based on the partitioning. Such computations often require the use of speculation to exploit dynamic parallelism. PLDS supports a conditional speculation mechanism that reduces the cost of speculation. PLDS can be employed in the context of different forms of parallelism, which to cover a wide range of parallel applications. PLDS provides easy-to-use compiler directives, using enabling programmers to choose from among a variety of data partitionings to distribute computation across threads in a partitioning-sensitive fashion, and to use conditional speculation when required. We evaluate our implementation of PLDS using ten benchmarks, of which six are parallelized using speculation. PLDS achieves 1.3x--6.9x speedups on an 8-core machine. Min Feng 0001, Changhui Lin, Rajiv Gupta 0001 |
ACM Trans. Archit. Code Optim. | 1 |
| 2012 | Maintaining Data Consistency in Structured P2P SystemsabstractA fundamental challenge of supporting mutable data replication in a Peer-to-Peer (P2P) system is to efficiently maintain consistency. This paper presents a framework for Balanced Consistency Maintenance (BCoM) in structured P2P systems with heterogeneous node capabilities and various workload patterns. Replica nodes of each object are organized into a tree structure for disseminating updates, and a sliding window update protocol is developed for consistency maintenance. We present an analytical model to optimize the window size according to the dynamic network conditions, workload patterns and resource limits. In this way, BCoM balances the consistency strictness, object availability for updates, and update propagation performance for various application requirements. On top of the dissemination tree, two enhancements are proposed: (1) a fast recovery scheme to strengthen the robustness against node and link failures, and (2) a node migration policy to remove and prevent bottlenecks allowing more efficient update delivery. Simulations are conducted using P2PSim to evaluate BCoM in comparison to SCOPE [1]. The experimental results demonstrate that BCoM outperforms SCOPE with lower discard rates. BCoM achieves a discard rate as low as 5 percent in most cases while SCOPE has almost 100 percent discard rate. Laxmi N. Bhuyan, Min Feng 0001 |
IEEE Trans. Parallel Distributed Syst. | 3 |
| 2011 | SpiceC: scalable parallelism via implicit copying and explicit commitabstractIn this paper we present an approach to parallel programming called SpiceC. SpiceC simplifies the task of parallel programming through a combination of an intuitive computation model and SpiceC directives. The SpiceC parallel computation model consists of multiple threads where every thread has a private space for data and all threads share data via a shared space. Each thread performs computations using its private space thus offering isolation which allows for speculative computations. SpiceC provides easy to use SpiceC compiler directives using which the programmers can express different forms of parallelism. It allows developers to express high level constraints on data transfers between spaces while the tedious task of generating the code for the data transfers is performed by the compiler. SpiceC also supports data transfers involving dynamic data structures without help from developers. SpiceC allows developers to create clusters of data to enable parallel data transfers. SpiceC programs are portable across modern chip multiprocessor based machines that may or may not support cache coherence. We have developed implementations of SpiceC for shared memory systems with and without cache coherence. We evaluate our implementation using seven benchmarks of which four are parallelized speculatively. Our compiler generated implementations achieve speedups ranging from 2x to 18x on a 24 core system. Min Feng 0001, Rajiv Gupta 0001 |
PPoPP | 1 |
| 2011 | Enhanced speculative parallelization via incremental recoveryabstractThe widespread availability of multicore systems has led to an increased interest in speculative parallelization of sequential programs using software-based thread level speculation. Many of the proposed techniques are implemented via state separation where non-speculative computation state is maintained separately from the speculative state of threads performing speculative computations. If speculation is successful, the results from speculative state are committed to non-speculative state. However, upon misspeculation, discard-all scheme is employed in which speculatively computed results of a thread are discarded and the computation is performed again. While this scheme is simple to implement, one disadvantage of discard-all is its inability to tolerate high misspeculation rates due to its high runtime overhead. Thus, it is not suitable for use in applications where misspeculation rates are input dependent Chen Tian 0002, Changhui Lin, Min Feng 0001, Rajiv Gupta 0001 |
PPoPP | 3 |
| 2011 | Dynamic access distance driven cache replacementabstractIn this article, we propose a new cache replacement policy that makes the replacement decision based on the reuse information of the cache lines and the requested data. We present the architectural support and evaluate the performance of our approach using SPEC benchmarks. We also develop two reuse information predictors: a profile-based static predictor and a runtime predictor. The applicability of each predictor is discussed in this paper. We further extend our reuse information predictors so that the cache can adaptively choose between the reuse information based replacement policy and an approximation of LRU policy. According to the experimental results, our adaptive reuse information based replacement policy performs either better than or close to the LRU policy. Our experiments show that L2 cache misses are reduced by 12.32% and 19.95% using the profiling-based static and runtime adaptive predictors respectively. Min Feng 0001, Chen Tian 0002, Changhui Lin, Rajiv Gupta 0001 |
ACM Trans. Archit. Code Optim. | 1 |
| 2010 | A Balanced Consistency Maintenance Protocol for Structured P2P SystemsabstractA fundamental challenge of managing mutable data replication in a Peer-to-Peer (P2P) system is how to efficiently maintain consistency under various sharing patterns with heterogeneous resource capabilities. This paper presents a framework for balanced consistency maintenance (BCoM) in structured P2P systems. Replica nodes of each object are organized into a tree for disseminating updates, and a sliding window update protocol is developed to bound the consistency. The effect of window size in response to dynamic network conditions, workload updates and resource limits is analyzed through a queueing model. This enables us to balance availability, performance and consistency strictness for various application requirements. On top of the dissemination tree, two enhancements are proposed: a fast recovery scheme to strengthen the robustness against node and link failures; and a node migration policy to remove and prevent the bottleneck for better system performance. Simulations are conducted using P2PSim to evaluate BCoM in comparison to SCOPE. The experimental results demonstrate that BCoM significantly improves the availability of SCOPE by lowering the discard rate from almost 100% to 5% with slight increase in latency. Min Feng 0001, Laxmi N. Bhuyan |
INFOCOM | 2 |
| 2010 | Speculative parallelization using state separation and multiple value predictionabstractWith the availability of chip multiprocessor (CMP) and simultaneous multithreading (SMT) machines, extracting thread level parallelism from a sequential program has become crucial for improving performance. However, many sequential programs cannot be easily parallelized due to the presence of dependences. To solve this problem, different solutions have been proposed. Some of them make the optimistic assumption that such dependences rarely manifest themselves at runtime. However, when this assumption is violated, the recovery causes very large overhead. Other approaches incur large synchronization or computation overhead when resolving the dependences. Consequently, for a loop with frequently arising cross-iteration dependences, previous techniques are not able to speed up the execution. In this paper we propose a compiler technique which uses state separation and multiple value prediction to speculatively parallelize loops in sequential programs that contain frequently arising cross-iteration dependences. The key idea is to generate multiple versions of a loop iteration based on multiple predictions of values of variables involved in cross-iteration dependences (i.e., live-in variables). These speculative versions and the preceding loop iteration are executed in separate memory states simultaneously. After the execution, if one of these versions is correct (i.e., its predicted values are found to be correct), then we merge its state and the state of the preceding iteration because the dependence between the two iterations is correctly resolved. The memory states of other incorrect versions are completely discarded. Based on this idea, we further propose a runtime adaptive scheme that not only gives a good performance but also achieves better CPU utilization. We conducted experiments on 10 benchmark programs on a real machine. The results show that our technique can achieve 1.7x speedup on average across all used benchmarks. Chen Tian 0002, Min Feng 0001, Rajiv Gupta 0001 |
ISMM | 2 |
| 2010 | Learning universal probabilistic models for fault localizationabstractRecently there has been significant interest in employing probabilistic techniques for fault localization. Using dynamic dependence information for multiple passing runs, learning techniques are used to construct a probabilistic graph model for a given program. Then, given a failing run, the probabilistic model is used to rank the executed statements according to the likelihood of them being faulty. In this paper we present a novel probabilistic approach in which universal probabilistic models are learned to characterize the behaviors of various instruction types used by all programs. The universal probabilistic model for an instruction type is in form of a probability distribution that represents how errors in the input (operand) values are propagated as errors in the output (result) of a given instruction type. Once these models have been constructed, they can be used in the analysis of any program as follows. Given a set of runs for any program, including at least one passing and one failing run, a Bayesian network called the Error Flow Graph (EFG) is then constructed from the dynamic dependence graphs of the program runs and the universal probabilistic models. Standard inference algorithms are employed to compute the probability of each executed statement being faulty. We also present optimizations to reduce the runtime cost of inference using the EFG. Our experiments demonstrate that our approach is highly effective in fault localization even when very few passing runs are available. It also performs well in the presence of multiple faults. Min Feng 0001, Rajiv Gupta 0001 |
PASTE | 1 |
| 2010 | Supporting speculative parallelization in the presence of dynamic data structuresabstractThe availability of multicore processors has led to significant interest in compiler techniques for speculative parallelization of sequential programs. Isolation of speculative state from non-speculative state forms the basis of such speculative techniques as this separation enables recovery from misspeculations. In our prior work on CorD [35,36] we showed that for array and scalar variable based programs copying of data between speculative and non-speculative memory can be highly optimized to support state separation that yields significant speedups on multicore machines available today. However, we observe that in context of heap-intensive programs that operate on linked dynamic data structures, state separation based speculative parallelization poses many challenges. The copying of data structures from non-speculative to speculative state (copy-in operation) can be very expensive due to the large sizes of dynamic data structures. The copying of updated data structures from speculative state to non-speculative state (copy-out operation) is made complex due to the changes in the shape and size of the dynamic data structure made by the speculative computation. In addition, we must contend with the need to translate pointers internal to dynamic data structures between their non-speculative and speculative memory addresses. In this paper we develop an augmented design for the representation of dynamic data structures such that all of the above operations can be performed efficiently. Our experiments demonstrate significant speedups on a real machine for a set of programs that make extensive use of heap based dynamic data structures. Chen Tian 0002, Min Feng 0001, Rajiv Gupta 0001 |
PLDI | 2 |
| 2009 | Detecting virus mutations via dynamic matchingabstractTo defeat current commercial antivirus software, the virus developers are employing obfuscation techniques to create mutating viruses. The current antivirus software cannot handle the obfuscated viruses well since its detection methods that are based upon static signatures are not resilient to even slight variations in the code that forms the virus. In this paper, we propose a new type of virus signature, called dynamic signature, and an algorithm for matching dynamic signatures. Our dynamic signature is created based on the runtime behavior of a virus. Therefore, an obfuscated virus can also be detected using a dynamic signature as long as it dynamically behaves like the original virus. We also discuss issues related to deploying our virus detection approach. Our experiments based upon several known mutating viruses show that our method is effective in identifying obfuscated viruses. Min Feng 0001, Rajiv Gupta 0001 |
ICSM | 1 |
| 2009 | Budget-Based Self-Optimized Incentive Search in Unstructured P2P NetworksabstractDistributed object search is the primary function of peer-to-peer (P2P) file sharing system to locate and transfer the file. The predominant search schemes in unstructured P2P systems have their problems: flooding creates excessive traffic overhead and random walk prolongs search delay. Moreover, both use uniform time-to-live (TTL) control for all users, which makes them vulnerable to selfish user attacks, and results in the "free-riding" and "tragedy of the commons" problems. In this paper, we propose a budget-based self-optimized incentive search (BuSIS) protocol for unstructured P2P file sharing systems, which is robust to and restricts selfish user behaviors. Furthermore, our protocol lowers the search overhead while keeping high hit rate. BuSIS provides differentiated search service for selfish users and ties a user's contribution to its service level. We present the analytical models on expected search performance, associated search cost and the user satisfaction level. Extensive emulations have been conducted at large scale network scenarios to compare performance of BuSIS with flooding and random walk searches with and without selfish user behaviors. The experimental results show that BuSIS always has the lowest search overhead without sacrificing the hit rate. When serving selfish users, flooding and random walk performance degrade dramatically, while BuSIS gracefully keeps the hit rate only with 20% overhead of flooding and 25% of random walk. Min Feng 0001, Laxmi N. Bhuyan, Vana Kalogeraki |
INFOCOM | 2 |
| 2009 | BugFix: A learning-based tool to assist developers in fixing bugsabstractWe present a tool called BugFix that can assist developers in fixing program bugs. Our tool automatically analyzes the debugging situation at a statement and reports a prioritized list of relevant bug-fix suggestions that are likely to guide the developer to an appropriate fix at that statement. BugFix incorporates ideas from machine learning to automatically learn from new debugging situations and bug fixes over time. This enables more effective prediction of the most relevant bug-fix suggestions for newly-encountered debugging situations. The tool takes into account the static structure of a statement, the dynamic values used at that statement by both passing and failing runs, and the interesting value mapping pairs [17] associated with that statement. We present a case study illustrating the efficacy of BugFix in helping developers to fix bugs. Dennis Jeffrey, Min Feng 0001, Neelam Gupta, Rajiv Gupta 0001 |
ICPC | 2 |
| 2008 | Copy or Discard execution model for speculative parallelization on multicoresabstractThe advent of multicores presents a promising opportunity for speeding up sequential programs via profile-based speculative parallelization of these programs. In this paper we present a novel solution for efficiently supporting software speculation on multicore processors. We propose the Copy or Discard (CorD) execution model in which the state of speculative parallel threads is maintained separately from the nonspeculative computation state. If speculation is successful, the results of the speculative computation are committed by copying them into the non-speculative state. If misspeculation is detected, no costly state recovery mechanisms are needed as the speculative state can be simply discarded. Optimizations are proposed to reduce the cost of data copying between nonspeculative and speculative state. A lightweight mechanism that maintains version numbers for non-speculative data values enables misspeculation detection. We also present an algorithm for profile-based speculative parallelization that is effective in extracting parallelism from sequential programs. Our experiments show that the combination of CorD and our speculative parallelization algorithm achieves speedups ranging from 3.7 to 7.8 on a Dell PowerEdge 1900 server with two Intel Xeon quad-core processors. Chen Tian 0002, Min Feng 0001, Vijay Nagarajan, Rajiv Gupta 0001 |
MICRO | 2 |