• Publications
  • Influence
Parrot: a practical runtime for deterministic, stable, and reliable threads
Multithreaded programs are hard to get right. A key reason is that the contract between developers and runtimes grants exponentially many schedules to the runtimes. We present Parrot, a simple,Expand
  • 80
  • 13
  • PDF
Paxos made transparent
State machine replication (SMR) leverages distributed consensus protocols such as Paxos to keep multiple replicas of a program consistent in face of replica failures or network partitions. This faultExpand
  • 43
  • 7
  • PDF
Efficient deterministic multithreading through schedule relaxation
Deterministic multithreading (DMT) eliminates many pernicious software problems caused by nondeterminism. It works by constraining a program to repeat the same thread interleavings, or schedules,Expand
  • 81
  • 6
  • PDF
APUS: fast and scalable paxos on RDMA
State machine replication (SMR) uses Paxos to enforce the same inputs for a program (e.g., Redis) replicated on a number of hosts, tolerating various types of failures. Unfortunately, traditionalExpand
  • 40
  • 6
  • PDF
Verifying systems rules using rule-directed symbolic execution
Systems code must obey many rules, such as "opened files must be closed." One approach to verifying rules is static analysis, but this technique cannot infer precise runtime effects of code, oftenExpand
  • 46
  • 4
  • PDF
Stable Deterministic Multithreading through Schedule Memoization
A deterministic multithreading (DMT) system eliminates nondeterminism in thread scheduling, simplifying the development of multithreaded programs. However, existing DMT systems are unstable; they mayExpand
  • 102
  • 3
  • PDF
How Local Information Improves Rendezvous in Cognitive Radio Networks
Cognitive Radio Network (CRN) is a promising technique for solving the wireless spectrum scarcity problem. Rendezvous is the fundamental process of CRNs. We aim at designing faster rendezvousExpand
  • 5
  • 3
  • PDF
Bypassing Races in Live Applications with Execution Filters
Deployed multithreaded applications contain many races because these applications are difficult to write, test, and debug. Worse, the number of races in deployed applications may drastically increaseExpand
  • 58
  • 2
  • PDF
Sound and precise analysis of parallel programs through schedule specialization
Parallel programs are known to be difficult to analyze. A key reason is that they typically have an enormous number of execution interleavings, or schedules. Static analysis over all schedulesExpand
  • 34
  • 2
  • PDF
OWL: Understanding and Detecting Concurrency Attacks
Just like bugs in single-threaded programs can lead to vulnerabilities, bugs in multithreaded programs can also lead to concurrency attacks. We studied 31 real-world concurrency attacks, includingExpand
  • 8
  • 1
  • PDF