Network


Latest external collaboration on country level. Dive into details by clicking on the dots.

Hotspot


Dive into the research topics where Derek Gordon Murray is active.

Publication


Featured researches published by Derek Gordon Murray.


symposium on operating systems principles | 2013

Naiad: a timely dataflow system

Derek Gordon Murray; Frank McSherry; Rebecca Isaacs; Michael Isard; Paul Barham; Martín Abadi

Naiad is a distributed system for executing data parallel, cyclic dataflow programs. It offers the high throughput of batch processors, the low latency of stream processors, and the ability to perform iterative and incremental computations. Although existing systems offer some of these features, applications that require all three have relied on multiple platforms, at the expense of efficiency, maintainability, and simplicity. Naiad resolves the complexities of combining these features in one framework. A new computational model, timely dataflow, underlies Naiad and captures opportunities for parallelism across a wide class of algorithms. This model enriches dataflow computation with timestamps that represent logical points in the computation and provide the basis for an efficient, lightweight coordination mechanism. We show that many powerful high-level programming models can be built on Naiads low-level primitives, enabling such diverse tasks as streaming data analysis, iterative machine learning, and interactive graph mining. Naiad outperforms specialized systems in their target application domains, and its unique features enable the development of new high-performance applications.


programming language design and implementation | 2011

Steno: automatic optimization of declarative queries

Derek Gordon Murray; Michael Isard; Yuan Yu

Declarative queries enable programmers to write data manipulation code without being aware of the underlying data structure implementation. By increasing the level of abstraction over imperative code, they improve program readability and, crucially, create opportunities for automatic parallelization and optimization. For example, the Language Integrated Query (LINQ) extensions to C# allow the same declarative query to process in-memory collections, and datasets that are distributed across a compute cluster. However, our experiments show that the serial performance of declarative code is several times slower than the equivalent hand-optimized code, because it is implemented using run-time abstractions---such as iterators---that incur overhead due to virtual function calls and superfluous instructions. To address this problem, we have developed Steno, which uses a combination of novel and well-known techniques to generate code for declarative queries that is almost as efficient as hand-optimized code. Steno translates a declarative LINQ query into type-specialized, inlined and loop-based imperative code. It eliminates chains of iterators from query execution, and optimizes nested queries. We have implemented Steno for uniprocessor, multiprocessor and distributed computing platforms, and show that, for a real-world distributed job, it can almost double the speed of end-to-end execution.


european workshop on system security | 2008

Privilege separation made easy: trusting small libraries not big processes

Derek Gordon Murray; Steven Hand

At the heart of a secure software system is a small, trustworthy component, called the Trusted Computing Base (TCB). However, developers persist in building monolithic systems that force their users to trust the entire system. We posit that this is due to the lack of a straightforward mechanism for partitioning -- or disaggregating -- systems into trusted and untrusted components. We propose to use the dynamic library as the unit of disaggregation, because it is a familiar abstraction, which is commonly used in mainstream software development. In this paper, we present our early ideas on the disaggregated library approach, which can be applied to existing applications that run on commodity operating systems. We first make the case for a new approach to disaggregation, and then describe how we are implementing it. We also draw comparisons with the wide range of related work in this area.


international workshop on security | 2010

Using Dust Clouds to Enhance Anonymous Communication

Richard Mortier; Anil Madhavapeddy; Theodore W. Hong; Derek Gordon Murray; Malte Schwarzkopf

Cloud computing platforms, such as Amazon EC2 [1], enable customers to lease several virtual machines (VMs) on a per-hour basis. The customer can now obtain a dynamic and diverse collection of machines spread across the world. In this paper we consider how this aspect of cloud computing can facilitate anonymous communications over untrusted networks such as the Internet, and discuss some of the challenges that arise as a result.


Proceedings of the 1st ACM SIGPLAN International Workshop on Machine Learning and Programming Languages | 2017

A computational model for TensorFlow: an introduction

Martín Abadi; Michael Isard; Derek Gordon Murray

TensorFlow is a powerful, programmable system for machine learning. This paper aims to provide the basics of a conceptual framework for understanding the behavior of TensorFlow models during training and inference: it describes an operational semantics, of the kind common in the literature on programming languages. More broadly, the paper suggests that a programming-language perspective is fruitful in designing and in explaining systems such as TensorFlow.


Communications of The ACM | 2016

Incremental, iterative data processing with timely dataflow

Derek Gordon Murray; Frank McSherry; Michael Isard; Rebecca Isaacs; Paul Barham; Martín Abadi

We describe the timely dataflow model for distributed computation and its implementation in the Naiad system. The model supports stateful iterative and incremental computations. It enables both low-latency stream processing and high-throughput batch processing, using a new approach to coordination that combines asynchronous and fine-grained synchronous execution. We describe two of the programming frameworks built on Naiad: GraphLINQ for parallel graph processing, and differential dataflow for nested iterative and incremental computations. We show that a general-purpose system can achieve performance that matches, and sometimes exceeds, that of specialized systems.


FMOODS/FORTE | 2013

Formal Analysis of a Distributed Algorithm for Tracking Progress

Martín Abadi; Frank McSherry; Derek Gordon Murray; Thomas L. Rodeheffer

Tracking the progress of computations can be both important and delicate in distributed systems. In a recent distributed algorithm for this purpose, each processor maintains a delayed view of the pending work, which is represented in terms of points in virtual time. This paper presents a formal specification of that algorithm in the temporal logic TLA, and describes a mechanically verified correctness proof of its main properties.


eurographics workshop on parallel graphics and visualization | 2016

Interacting with large distributed datasets using sketch

Mihai Budiu; Rebecca Isaacs; Derek Gordon Murray; Gordon D. Plotkin; Paul Barham; Samer Al-Kiswany; Yazan Boshmaf; Qingzhou Luo; Alexandr Andoni

We present Sketch, a library and a distributed runtime for building interactive tools for exploring large datasets, distributed across multiple machines. We have built several applications using Sketch; here we describe a billion-row spreadsheet, and a distributed-systems performance analyzer. Sketch applications allow interactive and responsive exploration of complex distributed datasets, scaling effectively to use large computational resources.


computer and communications security | 2008

Boxing clever with IOMMUs

Grzegorz Miłoś; Derek Gordon Murray

Input/Output Memory Management Units (IOMMUs) have been touted as the solution to many problems in virtualisation security. Used naïvely, they can improve fault isolation and reduce the amount of trusted code. We contend that it is possible to do better. In this paper, we introduce page boxing, a novel abstraction that allows untrusted virtual machines to manage data without having access to its contents. We illustrate how this can be used with an IOMMU to create a confidential end-to-end channel between disks and virtual machines. Unlike alternative approaches, we avoid the use of encryption, which gives the potential for high performance.


european conference on computer systems | 2018

Dynamic control flow in large-scale machine learning

Yuan Yu; Martín Abadi; Paul Barham; Eugene Brevdo; Mike Burrows; Andy Davis; Jeffrey Dean; Sanjay Ghemawat; Tim Harley; Peter Hawkins; Michael Isard; Manjunath Kudlur; Rajat Monga; Derek Gordon Murray; Xiaoqiang Zheng

Many recent machine learning models rely on fine-grained dynamic control flow for training and inference. In particular, models based on recurrent neural networks and on reinforcement learning depend on recurrence relations, data-dependent conditional execution, and other features that call for dynamic control flow. These applications benefit from the ability to make rapid control-flow decisions across a set of computing devices in a distributed system. For performance, scalability, and expressiveness, a machine learning system must support dynamic control flow in distributed and heterogeneous environments. This paper presents a programming model for distributed machine learning that supports dynamic control flow. We describe the design of the programming model, and its implementation in TensorFlow, a distributed machine learning system. Our approach extends the use of dataflow graphs to represent machine learning models, offering several distinctive features. First, the branches of conditionals and bodies of loops can be partitioned across many machines to run on a set of heterogeneous devices, including CPUs, GPUs, and custom ASICs. Second, programs written in our model support automatic differentiation and distributed gradient computations, which are necessary for training machine learning models that use control flow. Third, our choice of non-strict semantics enables multiple loop iterations to execute in parallel across machines, and to overlap compute and I/O operations. We have done our work in the context of TensorFlow, and it has been used extensively in research and production. We evaluate it using several real-world applications, and demonstrate its performance and scalability.

Collaboration


Dive into the Derek Gordon Murray's collaboration.

Top Co-Authors

Avatar
Top Co-Authors

Avatar
Top Co-Authors

Avatar
Top Co-Authors

Avatar
Top Co-Authors

Avatar
Top Co-Authors

Avatar
Researchain Logo
Decentralizing Knowledge