My interview today with our NPR affiliate New England Public Radio went from Zappos to broader security to a discussion of the End Times (more or less)!
http://www.nepr.net/news/umass-cyber-security-expert-examines-zappos-security-breach
My interview today with our NPR affiliate New England Public Radio went from Zappos to broader security to a discussion of the End Times (more or less)!
http://www.nepr.net/news/umass-cyber-security-expert-examines-zappos-security-breach
Filed under Uncategorized
We have made an alpha release of AutoMan, a platform for integrating human-based and digital computation. It allows programmers to “program with people”, which appear to the programmer to be ordinary function calls. AutoMan automatically handles details like quality control, payment, and task scheduling. It is currently implemented as a domain-specific language embedded in Scala (a language that runs on any machine with a Java Virtual Machine), and uses Amazon’s Mechanical Turk as a backend.
Visit the project page (automan-lang.org) for download information.
Technical report UMass CS TR 2011-44: Dan Barowy, Emery D. Berger, and Andrew McGregor.
Abstract:
Humans can perform many tasks with ease that remain difficult or impossible for computers. Crowdsourcing platforms like Amazon’s Mechanical Turk make it possible to harness human-based computational power on an unprecedented scale. However, their utility as a general-purpose computational platform remains limited. The lack of complete automation makes it difficult to orchestrate complex or interrelated tasks. Scheduling human workers to reduce latency costs real money, and jobs must be monitored and rescheduled when workers fail to complete their tasks. Furthermore, it is often difficult to predict the length of time and payment that should be budgeted for a given task. Finally, the results of human-based computations are not necessarily reliable, both because human skills and accuracy vary widely, and because workers have a financial incentive to minimize their effort.
This paper introduces AutoMan, the first fully automatic crowdprogramming system. AutoMan integrates human-based computations into a standard programming language as ordinary function calls, which can be intermixed freely with traditional functions. This abstraction allows AutoMan programmers to focus on their programming logic. An AutoMan program specifies a confidence level for the overall computation and a budget. TheAutoMan runtime system then transparently manages all details necessary for scheduling, pricing, and quality control. AutoMan automatically schedules human tasks for each computation until it achieves the desired confidence level; monitors, reprices, and restarts human tasks as necessary; and maximizes parallelism across human workers while staying under budget.
Filed under Uncategorized
“-Hoard” — enabling the use of my Hoard memory allocator — is now an officially sanctioned configuration flag for SPEC CPU2006 (the industry-standard way to measure CPU performance)! See the flags in use for the Intel compiler and Open64. My opinions about benchmarking notwithstanding, I am ok with my work being a standard configuration flag
.
Filed under Uncategorized
From PBS affiliate WGBY: University of Mass. Prof. of Computer Science Emery Berger discusses cyber security and what we can do to protect our information from computer hackers.
Filed under Uncategorized
Camera-ready versions of recent pubs from our research group:
SOSP 2011: Dthreads: Efficient and Deterministic Multithreading, Tongping Liu, Charlie Curtsinger, and Emery Berger.
OOPSLA 2011: Sheriff: Precise Detection and Automatic Mitigation of False Sharing, Tongping Liu and Emery Berger.
Filed under Uncategorized
Dthreads: Efficient Deterministic Multithreading,
Tongping Liu, Charlie Curtsinger, Emery D. Berger
SOSP 2011

[paper (PDF)][source code] [YouTube video of presentation][PPT slides]
Multithreaded programming is notoriously difficult to get right. A key problem is non-determinism, which complicates debugging, testing, and reproducing errors. One way to simplify multithreaded programming is to enforce deterministic execution, but current deterministic systems for C/C++ are incomplete or impractical. These systems require program modification, do not ensure determinism in the presence of data races, do not work with general-purpose multithreaded programs, or run up to 8.4× slower than pthreads.
This paper presents Dthreads, an efficient deterministic mul- tithreading system for unmodified C/C++ applications that replaces the pthreads library. Dthreads enforces determinism in the face of data races and deadlocks. Dthreads works by exploding multithreaded applications into multiple processes, with private, copy-on-write mappings to shared memory. It uses standard virtual memory protection to track writes, and deterministically orders updates by each thread. By separating updates from different threads, Dthreads has the additional benefit of eliminating false sharing. Experimental results show that Dthreads substantially outperforms a state-of-the-art deterministic runtime system, and for a majority of the benchmarks evaluated here, matches and occasionally exceeds the performance of pthreads.
Related post: SHERIFF: Precise Detection and Automatic Mitigation of False Sharing
Filed under Concurrency
Sheriff: Precise Detection and Automatic Mitigation of False Sharing
Tongping Liu, Emery D. Berger, OOPSLA 2011
False sharing is an insidious problem for multithreaded programs running on multicore processors, where it can silently degrade performance and scalability. Previous tools for detecting false sharing are severely limited: they cannot distinguish false sharing from true sharing, have high false positive rates, and provide limited assistance to help programmers locate and resolve false sharing.
This paper presents two tools that attack the problem of false sharing: SHERIFF-DETECT and SHERIFF-PROTECT. Both tools leverage a framework we introduce here called SHERIFF. SHERIFF breaks out threads into separate processes, and exposes an API that allows programs to perform per-thread memory isolation and tracking on a per-page basis. We believe SHERIFF is of independent interest.
SHERIFF-DETECT finds instances of false sharing by comparing updates within the same cache lines by different threads, and uses sampling to rank them by performance impact. SHERIFF-DETECT is precise (no false positives), runs with low overhead (on average, 20%), and is accurate, pinpointing the exact objects involved in false sharing. We present a case study demonstrating SHERIFF-DETECT’s effectiveness at locating false sharing in a variety of benchmarks.
Rewriting a program to fix false sharing can be infeasible when source is unavailable, or undesirable when padding objects would unacceptably increase memory consumption or further worsen runtime performance. SHERIFF-PROTECT mitigates false sharing by adaptively isolating shared updates from different threads into separate physical addresses, effectively eliminating most of the performance impact of false sharing. We show that SHERIFF-PROTECT can improve performance for programs with catastrophic false sharing by up to 9x, without programmer intervention.
Filed under Uncategorized
If you have an iPad, and (like me) you’d like to be able to take handwritten notes on it, there is finally a decent stylus that does the job: the AluPen. It’s chunky and a little weird, with a round rubber tip that looks like half of a tiny racquetball, but it works great (unlike every other iPad stylus I have tried).
Wired has a nice review. I bought mine on Amazon; it’s available in a wide range of colors, but I like the gold for its retro pencil look. I am using it in combination with NoteTaker HD, an app by Dan Bricklin of VisiCalc fame, though other note taking apps with a magnified writing area would be fine.
Filed under Uncategorized
I like my MacBook Air (my hands are soaking in it right now), but the speakers suck. I have never been able to get much volume out of them. Until now.
One of the winners of the MacWorld awards this year was Boom, a “volume booster” for your Mac. Works like a charm! It easily doubles the volume of the speakers, making it practical to use the Air to watch, say, The Daily Show, without having to don earphones. Well worth the $5 to crank your Mac up to 11.
Filed under Uncategorized
I was just at POPL and got a very nice compliment on a talk I gave on Grace from someone who watched it on-line (!). That talk was the first in my on-going efforts to eliminate all text from my slides. My latest talk has no text whatsoever, except for the titles (not here, though – haven’t given it at MSR!). Anyway, thanks to Microsoft, you can watch the evolution (talks ordered from most recent to oldest).
Sheriff: Detecting and Eliminating False Sharing
Grace: Safe Multithreaded Programming for C/C++ (paper)
Exploiting Multiple Cores Today: Scalability and Reliability For Off-the-shelf Software (Flux, DieHard)
Filed under Uncategorized