A Guide for Session Chairs

I just sent this message as a guide to the program committee members who will be chairing sessions for PLDI 2016 (I figure it’s the first time for some of them). A few people suggested I post it, so here it is (lightly edited). Additions or other suggestions welcome.

  • Find your speakers before the session begins. You will have to talk to them about some stuff – see below.
  • Find out how to pronounce their names properly.
  • Find out if they are on the market next year – sometimes people like the advertisement that they will be graduating soon.
  • Have them check their equipment (particularly if they are using Linux…). To be on the safe side, carry a spare Mac VGI dongle – speakers forget this shockingly often. You should consider writing your name on it in Sharpie (or do what one of my students does – cover it in bright pink fingernail polish). This greatly increases the odds you will get your dongle back after the session.
  • Before each session, introduce the entire session (as in, “I am So-and-So, from Wherever University; welcome to the session on drone-based programming languages.”
  • Before each talk, introduce each speaker. I personally recommend not reading their title, since lots of speakers are on autopilot and will just repeat everything you said. You can instead say something like “This is Foo Bar, who will be talking about verifying clown car drivers.” In fact, come to think of it, you could just say that for every talk.
  • Keep track of time. For PLDI this year, speakers get 25 minutes, and then there are 5 minutes for questions. If you have an iPad, there’s an app I have used to display time to speakers (big giant numbers, you can set it to change colors when you hit 5 min or 1 min till the end). You can of course always go old school and hold up a sheet of paper indicating when time is drawing near. I recommend doing this when there are 5 minutes left and 1 minute left. Let the speakers know you will be doing this.
  • When the speaker is done, if it hasn’t happened already, make sure everyone applauds by saying “Let’s thank our speaker” and start applauding. Then open the floor to questions.
  • COME PREPARED WITH A QUESTION. The worst thing ever is when the talk is a disaster does not go well and no one has any questions for the speaker, and then: <crickets>. Read over each paper so you have at least a couple of questions planned for this eventuality. Hopefully it won’t come to this and someone will ask something, but it happens sometimes, and it’s great if you can save the day. It’s still a good idea to ask a question or two in case there are very few questions from the audience.
  • Make sure people who ask questions use the mic and state their name and affiliation.
  • You may also have to clarify the question for the speaker, repeat the question, etc. Understanding questioners can occasionally be a challenge for non-native English speakers: it’s a stressful time, and the questioners may have unfamiliar accents, etc. Be prepared to give the speaker a helping hand.
  • Be prepared to cut off a questioner. YOU ARE IN CHARGE OF THE SESSION. If a questioner won’t give up the mic and keeps asking questions and is burning time, rambling, etc., you are empowered to move on to the next questioner (e.g., by suggesting “how about we take this off-line”).
  • Hopefully this won’t be an issue you will have to deal with, but questioners who are belligerent or insulting must not be tolerated. Cut them off and report them to the program chair (me) or the general chair. I sincerely hope and expect that this will not happen, but I want you to realize you are empowered to take action immediately. You can read over SIGPLAN’s non-harassment policy here, which is based on ACM’s: http://www.sigplan.org/Resources/Policies/CodeOfConduct/.
  • To make sure things run smoothly, have the next speaker on deck with their laptop a minute or so before question times end. Ideally, they will be setting up while the current speaker is wrapping up questions.
  • Finally, when questions are over, say “Let’s thank our speaker again” and applaud.
  • At the end of the session, tell everyone what’s next (e.g., “next is lunch, and talks will resume at 1:30pm”).

And thanks again to all the session chairs for volunteering!



Coz: Finding code that counts with causal profiling

Nice summary of Coz.

the morning paper

Coz: Finding code that counts with causal profiling – Curtsinger & Berger 2015

update: fixed typo in paper title

Sticking to the theme of ‘understanding what our systems are doing,’ but focusing on a single process, Coz is a causal profiler. In essence, it makes the output of a profiler much more useful to you by showing you where optimisations would genuinely have a beneficial effect (which doesn’t always equate with the places programs spend the most time). Interestingly, it can also show you places where locally optimising performance will actually slow down the overall system. That might sound counter-intuitive: the Universal Scalability Law gives us some clues as to why this might be. The understanding gained from finding such locations is also very useful in optimising the application overall.

Conventional profilers rank code by its contribution to total execution time. Prominent examples include oprofile, perf, and gprof. Unfortunately, even…

View original post 1,647 more words

Doppio Selected as SIGPLAN Research Highlight

Doppio, our work on making it possible to run general-purpose applications inside the browser, recently won two awards. At PLDI, it received the Distinguished Artifact Award. SIGPLAN, the Special Interest Group of ACM that focuses on Programming Languages, just selected Doppio as a Research Highlight. These papers are chosen by a board from across the PL community; SIGPLAN highlights are also recommended for consideration for the CACM Research Highlights section.

Below is the citation. IMHO John did an extraordinary job on the paper and the system, and I am glad to see that the community agrees!

Title: Doppio: Breaking the Browser Language Barrier
Authors: John Vilk, Emery Berger, University of Massachusetts
Venue: PLDI 2014

The authors build a JavaScript-based framework, Doppio, in which unmodified programs can be executed within a web browser. They do this by creating a runtime environment in JavaScript that supports basic services such as sockets, threading, and a filesystem that are not otherwise supported within the browser. The authors demonstrate the framework by implementing an in-browser JVM and an in-browser runtime for C++. The paper is an engineering tour de force. The paper should appeal to a wide audience because of the ubiquity of the browser (and thus the utility of their systems), and because it is broad in scope.

Washington Post, Take Down This Article!


The Washington Post just published an article from a kid claiming he graduated at the top of his class at Penn State in Computer Science but couldn’t find a job. But his description of Computer Science classes is completely disconnected from reality. Turns out, he graduated with a degree in Management Information Systems (a business degree) and not from the Penn State any reasonable person would assume, but rather a satellite campus. All this info is right on the dude’s own LinkedIn page and a previous version of the article from Sept. 2013. Washington Post, Take Down This Article!

[This was initially publicly posted on Facebook here:

Update – I wrote a Letter to the Editor of the Washington Post. They did not choose to print it, though they did partially correct the article.


Dear Editor:

A recent op-ed article by Casey Ark (“I studied computer science, not English. I still can’t find a job.”, August 31) is deceptive and misleading. Ark says he graduated at the top of his class at Penn State in Computer Science but found himself unable to find a job. All of these claims are false. An accurate headline would read “I studied business, not English. I had job opportunities, but I turned them down.”

Ark’s descriptions of his class experiences — non-rigorous, memorization-based, and non-technical — sound nothing like a Computer Science degree, and here’s why. A visit to his LinkedIn page (https://www.linkedin.com/pub/casey-ark/23/194/668) shows that he graduated with a degree in Management Information Systems, a non-technical business degree that has little to do with Computer Science and is decidedly not a STEM (Science, Technology, Engineering, and Math) field.

Ark also fails to mention that he attended a satellite campus rather than the more prestigious flagship University Park campus of Penn State, a fact included in an earlier version of this article that appeared on PennLive in September 2013
(http://www.pennlive.com/opinion/index.ssf/2013/09/heres_why_why_more_and_more_college_grads_are_tossing_aside_their_resumes_and_embracing_entrepreneur.html). Regardless of its quality, leaving out the location leads readers to believe he graduated from the main campus.

In this earlier article, Ark describes having chosen to not take two entry-level job options, but instead deciding to become an entrepreneur.

I am surprised and chagrined that this op-ed made it through whatever fact-checking mechanisms exist at Washington Post, when a few moments with Google sufficed to discredit the central claims of the article.

Professor Emery Berger
School of Computer Science
University of Massachusetts Amherst


Professor Stephen A. Edwards
Department of Computer Science
Columbia University in the City of New York

Asst. Professor Brandon Lucia
Department of Electrical and Computer Engineering
Carnegie Mellon University

Associate Professor Daniel A. Jiménez
Department of Computer Science & Engineering
Texas A&M University

Assistant Professor David Van Horn
Department of Computer Science
University of Maryland, College Park

Assistant Professor Santosh Nagarakatte
Department of Computer Science
Rutgers, The State University of New Jersey, New Brunswick

Assistant Professor Swarat Chaudhuri
Department of Computer Science
Rice University

Associate Professor Dan Grossman
Department of Computer Science & Engineering
University of Washington

Professor Michael Hicks (B.S. Computer Science, Penn State ‘93)
Department of Computer Science
University of Maryland

Associate Professor Matthew Hertz
Department of Computer Science
Canisius College

Associate Professor Landon Cox
Department of Computer Science
Duke University

Associate Professor Benjamin Liblit (B.S. Computer Science, Penn State ‘93)
Department of Computer Sciences
University of Wisconsin–Madison

Associate Professor John Regehr
School of Computing
University of Utah

Professor Jeff Foster
Department of Computer Science
University of Maryland, College Park

Kaushik Veeraraghavan

Some comments from the Facebook thread posted by my fellow Computer Science colleagues:

Daniel Ángel Jiménez This kind of garbage causes lots of confusion. At my last job, almost all of the complaints from local industry about our CS graduates turned out to actually be about morons from the business school.

Shriram Krishnamurthi “Correction: An earlier version of this story’s headline misidentified what the author studied. It has been corrected.” They changed “engineering” to “computer science”. Thanks, WaPo!

Rob Ennals It seems that whenever I read a media article about something I actually know about, there is something fundamentally wrong with their understanding of the situation. This makes me worry about the accuracy of the information I’m getting about things I’m not knowledgable about.

Emery Berger He laments “they’re looking for employees who can actually do things – like build iPhone apps…. I wish I’d been taught how to do those things in school, but my college had something different in mind.”


Tao Xie Another very important piece of information (from the original earlier post: http://www.pennlive.com/…/heres_why_why_more_and_more…), “When I graduated from PSU’s Harrisburg campus in May, ….” This kid graduated from PSU Harrisburg Campus, **NOT** the State College campus!! There are 24 campuses of PSU (http://www.psu.edu/academics/campuses). Note that the Washington Post article (carefully?) “rephrased” the above quoted sentence to be “When I graduated from Penn State a year ago, …” smh..

Stephen A. Edwards Breathtaking naivete on display in this column. I have no idea what he was studying: any CS graduate shouldn’t have any idea about the difference between advertising and marketing. His lament about all the programming languages and tools I learned were years out of date is also laughable. Of course they’re out of date: everything in CS is more-or-less instantly. The thing is to make sure you understand the basic concepts so you can learn the new stuff faster. But I really got a chuckle about his suggestion that we be more lax about academic standards and hire better businesspeople. Absolutely that will improve the quality of your education, no question.

New Scientist coverage of our AutoMan project

The New Scientist has just published an article covering our AutoMan project, which makes it possible to program with people. Full article below. Reasonably accurate, though it’s my team, not Dan’s :). Also on the project are my student Charlie Curtsinger, and my UMass colleague Andrew McGregor.

Continue reading New Scientist coverage of our AutoMan project

Most Influential Paper of OOPSLA 2002: “Reconsidering Custom Memory Allocation”

Our paper, Reconsidering Custom Memory Allocation, was just granted the Most Influential OOPSLA Paper award (given ten years after the paper appeared). Here’s the citation for the award.Influential-Paper-OOPSLA

Custom memory management is often used in systems software for the purpose of decreasing the cost of allocation and tightly controlling memory footprint of software. Until 2002, it was taken for granted that application-specific memory allocators were superior to general purpose libraries. Berger, Zorn and McKinley’s paper demonstrated through a rigorous empirical study that this assumption is not well-founded, and gave insights into the reasons why general purpose allocators can outperform handcrafted ones. The paper also stands out for the quality of its empirical methodology.

I am grateful to OOPSLA not only for the check for $333.33 :), but also for giving me the chance to publicly stand up and thank my wonderful co-authors: my excellent colleague Ben Zorn and my awesome advisor, Kathryn McKinley (both now at Microsoft Research). The original paper actually did a bit more than the citation – here’s the abstract from the original paper.

Programmers hoping to achieve performance improvements often use custom memory allocators. This in-depth study examines eight applications that use custom allocators. Surprisingly, for six of these applications, a state-of-the-art general-purpose allocator (the Lea allocator) performs as well as or better than the custom allocators. The two exceptions use regions, which deliver higher performance (improvements of up to 44%). Regions also reduce programmer burden and eliminate a source of memory leaks. However, we show that the inability of programmers to free individual objects within regions can lead to a substantial increase in memory consumption. Worse, this limitation precludes the use of regions for common programming idioms, reducing their usefulness.

We present a generalization of general-purpose and region-based allocators that we call reaps. Reaps are a combination of regions and heaps, providing a full range of region semantics with the addition of individual object deletion. We show that our implementation of reaps provides high performance, outperforming other allocators with region-like semantics. We then use a case study to demonstrate the space advantages and software engineering benefits of reaps in practice. Our results indicate that programmers needing fast regions should use reaps, and that most programmers considering custom allocators should instead use the Lea allocator.

Slight correction: they should instead use Hoard :).

Emery Berger's Blog

%d bloggers like this: