A time-tested principle in computer systems design is to use an interface to separate an abstraction from its implementation. "Software-Defined Batteries" represents...Srinivasan Keshav From Communications of the ACM | December 2016
In this paper, we present a new hardware-software system, called Software Defined Battery, which allows system designers to integrate batteries of different chemistries...Anirudh Badam, Ranveer Chandra, Jon Dutra, Anthony Ferrese, Steve Hodges, Pan Hu, Julia Meinershagen, Thomas Moscibroda, Bodhi Priyantha, Evangelia Skiani From Communications of the ACM | December 2016
"A Reconfigurable Fabric for Accelerating Large-Scale Datacenter Services" presents a research deployment of Field Programmable Gate Arrays (FPGAs) in a Microsoft...James C. Hoe From Communications of the ACM | November 2016
We describe a medium-scale deployment of a composable, reconfigurable hardware fabric on a bed of 1,632 servers, and measure its effectiveness in accelerating the...Andrew Putnam, Adrian M. Caulfield, Eric S. Chung, Derek Chiou, Kypros Constantinides, John Demme, Hadi Esmaeilzadeh, Jeremy Fowers, Gopi Prashanth Gopal, Jan Gray, Michael Haselman, Scott Hauck, Stephen Heil, Amir Hormati, Joo-Young Kim, Sitaram Lanka, James Larus, Eric Peterson, Simon Pope, Aaron Smith, Jason Thong, Phillip Yi Xiao, Doug Burger From Communications of the ACM | November 2016
"Efficient Parallelization Using Rank Convergence in Dynamic Programming Algorithms" shows how some instances of dynamic programming can be effectively parallelized...James Larus From Communications of the ACM | October 2016
This paper proposes an efficient parallel algorithm for an important class of dynamic programming problems that includes Viterbi, Needleman-Wunsch, Smith-Waterman...Saeed Maleki, Madanlal Musuvathi, Todd Mytkowicz From Communications of the ACM | October 2016
"Incremental, Iterative Data Processing with Timely Dataflow" describes Naiad, which combines three classes of dataflow systems, supporting high-throughput batch...Johannes Gehrke From Communications of the ACM | October 2016
We describe the timely dataflow model for distributed computation and its implementation in the Naiad system.
Derek G. Murray, Frank McSherry, Michael Isard, Rebecca Isaacs, Paul Barham, Martin Abadi From Communications of the ACM | October 2016
"Verifying Quantitative Reliability for Programs that Execute on Unreliable Hardware" by Carbin et al. addresses challenges related to a bug, how likely it is to...Todd Millstein From Communications of the ACM | August 2016
We present Rely, a programming language that enables developers to reason about the quantitative reliability of an application — namely, the probability that it...Michael Carbin, Sasa Misailovic, Martin C. Rinard From Communications of the ACM | August 2016
Until now, the database in a Web application has been treated as a global variable, accessible to all. In "Ur/Web: A Simple Model for Programming the Web," Adam...Philip Wadler From Communications of the ACM | August 2016
This paper presents Ur/Web, a domain-specific, statically typed functional programming language that reduces the nest of Web standards for modern Web applications...Adam Chlipala From Communications of the ACM | August 2016
What kinds of problems can be solved with combined human and machine computation? "AutoMan: A Platform for Integrating Human-Based and Digital Computation," by...Siddharth Suri From Communications of the ACM | June 2016
We introduce AutoMan, the first fully automatic crowdprogramming system.Daniel W. Barowy, Charlie Curtsinger, Emery D. Berger, Andrew McGregor From Communications of the ACM | June 2016
"Enhancing Symbolic Execution with Veritesting" by Avgerinos et al. proposes an effective technique called veritesting that addresses the scalability limitations...Koushik Sen From Communications of the ACM | June 2016
In this article, we present a new technique for generating formulas called veritesting that alternates between static symbolic execution (SSE) and dynamic symbolic...Thanassis Avgerinos, Alexandre Rebert, Sang Kil Cha, David Brumley From Communications of the ACM | June 2016
In "Hiding Secrets in Software," Garg et al. construct a "one-way compiler" of the type envisioned by Diffie and Hellman.Boaz Barak From Communications of the ACM | May 2016
Can we hide secrets in software? Can we make programs unintelligible while preserving their functionality? Why would we even want to do this? In this article, we...Sanjam Garg, Craig Gentry, Shai Halevi, Mariana Raykova, Amit Sahai, Brent Waters From Communications of the ACM | May 2016
"On the Naturalness of Software" by Hindle et al. takes an entirely new approach to providing tools to help build software.Gail C. Murphy From Communications of the ACM | May 2016
We begin with the conjecture that most software is natural, with all the attendant constraints and limitations — and thus, like natural language, it is also likely...Abram Hindle, Earl T. Barr, Mark Gabel, Zhendong Su, Premkumar Devanbu From Communications of the ACM | May 2016