Results 1 
7 of
7
Approximate counting in SMT and value estimation for probabilistic programs
 In TACAS, volume 9035 of LNCS
, 2015
"... Abstract. #SMT, or model counting for logical theories, is a wellknown hard problem that generalizes such tasks as counting the number of satisfying assignments to a Boolean formula and computing the volume of a polytope. In the realm of satisfiability modulo theories (SMT) there is a growing need ..."
Abstract

Cited by 2 (0 self)
 Add to MetaCart
(Show Context)
Abstract. #SMT, or model counting for logical theories, is a wellknown hard problem that generalizes such tasks as counting the number of satisfying assignments to a Boolean formula and computing the volume of a polytope. In the realm of satisfiability modulo theories (SMT) there is a growing need for model counting solvers, coming from several application domains (quantitative information flow, static analysis of probabilistic programs). In this paper, we answer this need and show how to reduce an approximate version of #SMT to SMT. We focus on the theories of integer arithmetic and linear real arithmetic. We propose model counting algorithms that provide approximate solutions with formal bounds on the approximation error. They run in polynomial time and make a polynomial number of queries to the SMT solver for the underlying theory, exploiting “for free ” the sophisticated heuristics implemented within modern SMT solvers. We have implemented the algorithms and used them to solve a value estimation problem for a model of loopfree probabilistic programs with nondeterminism. 1
ApproxHadoop: Bringing Approximations to MapReduce Frameworks
"... We propose and evaluate a framework for creating and running approximationenabled MapReduce programs. Specifically, we propose approximation mechanisms that fit naturally into the MapReduce paradigm, including input data sampling, task dropping, and accepting and running a precise and a userde ..."
Abstract

Cited by 1 (0 self)
 Add to MetaCart
(Show Context)
We propose and evaluate a framework for creating and running approximationenabled MapReduce programs. Specifically, we propose approximation mechanisms that fit naturally into the MapReduce paradigm, including input data sampling, task dropping, and accepting and running a precise and a userdefined approximate version of the MapReduce code. We then show how to leverage statistical theories to compute error bounds for popular classes of MapReduce programs when approximating with input data sampling and/or task dropping. We implement the proposed mechanisms and error bound estimations in a prototype system called ApproxHadoop. Our evaluation uses MapReduce applications from different domains, including data analytics, scientific computing, video encoding, and machine learning. Our results show that ApproxHadoop can significantly reduce application execution time and/or energy consumption when the user is willing to tolerate small errors. For example, ApproxHadoop can reduce runtimes by up to 32 × when the user can tolerate an error of 1 % with 95 % confidence. We conclude that our framework and system can make approximation easily accessible to many application domains using the MapReduce model.
Research Opportunities for the Big Data Era of Software Engineering
"... AbstractBig Data Analysis is becoming a widespread practice on many software development projects, and statisticians and data analysts are working alongside developers, testers and program managers. Because data science is still an emerging discipline in software projects, there are many opportuni ..."
Abstract
 Add to MetaCart
(Show Context)
AbstractBig Data Analysis is becoming a widespread practice on many software development projects, and statisticians and data analysts are working alongside developers, testers and program managers. Because data science is still an emerging discipline in software projects, there are many opportunities where software engineering researchers can help improve practice. In terms of productivity, data scientists need support for exploratory analysis of large datasets, relief from clerical tasks like data cleaning, and easier paths for live deployment of new analyses. In terms of correctness, data scientists need help in preserving data meaning and provenance, and nonexperts need help avoiding analysis errors. In terms of communication and coordination, teams need more approachable ways to discuss uncertainty and risk, and support for datadriven decision making needs to become available to all roles. This position paper describes these open problems and points to ongoing research beginning to tackle them.
Generality & Programmability are at Odds with
"... Today’s languages, systems, and architectures include considerable support for generality and programmability. Systems are built to enable simple implementation of a broad class of programs, and to provide an acceptable level of performance and efficiency. The profusion of highlevel languages, runt ..."
Abstract
 Add to MetaCart
(Show Context)
Today’s languages, systems, and architectures include considerable support for generality and programmability. Systems are built to enable simple implementation of a broad class of programs, and to provide an acceptable level of performance and efficiency. The profusion of highlevel languages, runtime and system support for tasks like garbage collection and virtualization, and architectural mechanisms like virtual memory speak to the importance placed by system designers on supporting programmability for a broad class of programs. While systems go to these great lengths for generality and programmability, efficiency is also a key design requirement because the amount of time, space, and energy a computation requires ultimately determines its cost. Unfortunately, system support for generality is frequently at odds with the need for high performance and efficiency. Mechanisms and abstractions built to provide generality and programmability come at a cost in efficiency and
Probability Type Inference for Flexible Approximate Programming
"... In approximate computing, programs gain efficiency by allowing occasional errors. Controlling the probabilistic effects of this approximation remains a key challenge. We propose a new approach where programmers use a type system to communicate highlevel constraints on the degree of approximation ..."
Abstract
 Add to MetaCart
In approximate computing, programs gain efficiency by allowing occasional errors. Controlling the probabilistic effects of this approximation remains a key challenge. We propose a new approach where programmers use a type system to communicate highlevel constraints on the degree of approximation. A combination of type inference, code specialization, and optional dynamic tracking makes the system expressive and convenient. The core type system captures the probability that each operation exhibits an error and bounds the probability that each expression deviates from its correct value. Solveraided type inference lets the programmer specify the correctness probability on only some variables—program outputs, for example—and automatically fills in other types to meet these specifications. An optional dynamic type helps cope with complex runtime behavior where static approaches are insufficient. Together, these features interact to yield a high degree of programmer control while offering a strong soundness guarantee. We use existing approximatecomputing benchmarks to show how our language, DECAF, maintains a low annotation burden. Our constraintbased approach can encode hardware details, such as finite degrees of reliability, so we also use DECAF to examine implications for approximate hardware design. We find that multilevel architectures can offer advantages over simpler twolevel machines and that solveraided optimization improves efficiency. Categories and Subject Descriptors D.3.3 [Programming
Probabilistic Program Modeling for HighPrecision Anomaly Classification
"... Abstract—The trend constantly being observed in the evolution of advanced modern exploits is their growing sophistication in stealthy attacks. Codereuse attacks such as returnoriented programming allow intruders to execute malintended instruction sequences on a victim machine without injecting e ..."
Abstract
 Add to MetaCart
(Show Context)
Abstract—The trend constantly being observed in the evolution of advanced modern exploits is their growing sophistication in stealthy attacks. Codereuse attacks such as returnoriented programming allow intruders to execute malintended instruction sequences on a victim machine without injecting external code. We introduce a new anomalybased detection technique that probabilistically models and learns a program’s control flows for highprecision behavioral reasoning and monitoring. Our prototype in Linux is named STILO, which stands for STatically InitiaLized markOv. Experimental evaluation involves realworld codereuse exploits and over 4,000 testcases from server and utility programs. STILO achieves up to 28fold of improvement in detection accuracy over the stateoftheart HMMbased anomaly detection. Our findings suggest that the probabilistic modeling of program dependences provides a significant source of behavior information for building highprecision models for realtime system monitoring. Keywords—Anomaly detection, static program analysis, hidden Markov model, probability I.
HARDWARE AND SOFTWARE
, 2015
"... Approximate computing is the idea that we are hindering computer systems ’ eficiency by demanding toomuch accuracy from them. While precision is crucial for some tasks, many modern applications are fundamentally approximate. Perfect answers are unnecessary or even impossible in domains such as com ..."
Abstract
 Add to MetaCart
(Show Context)
Approximate computing is the idea that we are hindering computer systems ’ eficiency by demanding toomuch accuracy from them. While precision is crucial for some tasks, many modern applications are fundamentally approximate. Perfect answers are unnecessary or even impossible in domains such as computer vision, machine learning, speech recognition, search, graphics, and physical simulation. Today’s systemswaste time, energy, and complexity to provide uniformly pristine operation for applications that do not require it. Resilient applications are not, however, a license for computers to abandon predictability in favor of arbitrary errors. We need abstractions that incorporate approximate operation in a disciplinedway. Application programmers should be able to exploit these richer abstractions to treat accuracy as a resource and trade it of for more traditional resources such as time, space, or energy. his dissertation explores new abstractions for approximate computing across hardware and software. It develops these abstractions from two perspectives: from the point of view of programmers, where the challenge is constraining im