Cloud Programming: From Doom and Gloom to BOOM and Bloom Peter Alvaro, Neil Conway Faculty Recs: Joseph M. Hellerstein, Rastislav Bodik Collaborators:

Slides:



Advertisements
Similar presentations
Disorderly Distributed Programming with Bloom
Advertisements

Edelweiss: Automatic Storage Reclamation for Distributed Programming Neil Conway Peter Alvaro Emily Andrews Joseph M. Hellerstein University of California,
Translation-Based Compositional Reasoning for Software Systems Fei Xie and James C. Browne Robert P. Kurshan Cadence Design Systems.
BloomUnit Declarative testing for distributed programs Peter Alvaro UC Berkeley.
FUP - Formal Unified Process MSc.Miroslav Líška Slovak University of Technology Faculty of Informatics and Information.
Cloud Programming: From Doom and Gloom to BOOM and Bloom Neil Conway UC Berkeley Joint work with Peter Alvaro, Ras Bodik, Tyson Condie, Joseph M. Hellerstein,
© Chinese University, CSE Dept. Software Engineering / Software Engineering Topic 1: Software Engineering: A Preview Your Name: ____________________.
Presented by: Thabet Kacem Spring Outline Contributions Introduction Proposed Approach Related Work Reconception of ADLs XTEAM Tool Chain Discussion.
Background information Formal verification methods based on theorem proving techniques and model­checking –to prove the absence of errors (in the formal.
MapReduce Online Tyson Condie and Neil Conway UC Berkeley Joint work with Peter Alvaro, Rusty Sears, Khaled Elmeleegy (Yahoo! Research), and Joe Hellerstein.
Systems Engineering for Automating V&V of Dependable Systems John S. Baras Institute for Systems Research University of Maryland College Park
A New Computing Paradigm. Overview of Web Services Over 66 percent of respondents to a 2001 InfoWorld magazine poll agreed that "Web services are likely.
Integrated Design and Analysis Tools for Software-Based Control Systems Shankar Sastry (PI) Tom Henzinger Edward Lee University of California, Berkeley.
February 21, 2008 Center for Hybrid and Embedded Software Systems Organization Board of Directors Edward A. Lee, UC Berkeley.
1 SWE Introduction to Software Engineering Lecture 21 – Architectural Design (Chapter 13)
Software Engineering and Middleware: a Roadmap by Wolfgang Emmerich Ebru Dincel Sahitya Gupta.
Overview Distributed vs. decentralized Why distributed databases
ProActive Infrastructure Eric Brewer, David Culler, Anthony Joseph, Randy Katz Computer Science Division U.C. Berkeley ninja.cs.berkeley.edu Active Networks.
Establishing the overall structure of a software system
Cloud Programming James Larus Microsoft Research Mysore-Park Workshop on Cloud Computing Mysore India, January 13, 2010.
Software Engineering and Middleware A Roadmap Author: Wolfgang Emmerich Presented by: Sam Malek.
Strategic Directions in Real- Time & Embedded Systems Aatash Patel 18 th September, 2001.
CprE 458/558: Real-Time Systems
CS884 (Prasad)Java Goals1 “Perfect Quote” You know you've achieved perfection in design, Not when you have nothing more to add, But when you have nothing.
Fraud Detection in Banking using Big Data By Madhu Malapaka For ISACA, Hyderabad Chapter Date: 14 th Dec 2014 Wilshire Software.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 13 Slide 1 Application architectures.
Advances in Language Design
Cheng/Dillon-Software Engineering: Formal Methods Model Checking.
February Semantion Privately owned, founded in 2000 First commercial implementation of OASIS ebXML Registry and Repository.
Distributed Systems (15-440) Mohammad Hammoud December 4 th, 2013.
Tyson Condie.
Quan Yuan and Sasithorn Zuge Dept. of Computing and New Media Technologies University of Wisconsin-Stevens Point.
Objective 1.2 Cloud Computing, Internet of Services and Advanced Software Engineering Arian Zwegers European Commission Information Society and Media Directorate.
CS451 Lecture 13: Architectural Design Chapter 10
©Ian Sommerville 1995 Software Engineering, 5th edition. Chapter 13Slide 1 Architectural Design u Establishing the overall structure of a software system.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 10Slide 1 Chapter 10 Architectural Design.
B.Ramamurthy9/19/20151 Operating Systems u Bina Ramamurthy CS421.
Software engineering. What is software engineering? Software engineering is an engineering discipline which is concerned with all aspects of software.
CS525: Special Topics in DBs Large-Scale Data Management Hadoop/MapReduce Computing Paradigm Spring 2013 WPI, Mohamed Eltabakh 1.
Architectural Design portions ©Ian Sommerville 1995 Establishing the overall structure of a software system.
Cluster Reliability Project ISIS Vanderbilt University.
Introduction CS 3358 Data Structures. What is Computer Science? Computer Science is the study of algorithms, including their  Formal and mathematical.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 10Slide 1 Architectural Design l Establishing the overall structure of a software system.
Molecular Transactions G. Ramalingam Kapil Vaswani Rigorous Software Engineering, MSRI.
COP 3530 PROGRAM, FILE & DATA STRUCTURES Syllabus Syllabus Lab Information Lab Information Overrides Overrides Questions? Questions?
Overview of Formal Methods. Topics Introduction and terminology FM and Software Engineering Applications of FM Propositional and Predicate Logic Program.
Framework for the Development and Testing of Dependable and Safety-Critical Systems IKTA 065/ Supported by the Information and Communication.
Architectural Design Yonsei University 2 nd Semester, 2014 Sanghyun Park.
Advanced Computer Networks Topic 2: Characterization of Distributed Systems.
Introduction CS 3358 Data Structures. What is Computer Science? Computer Science is the study of algorithms, including their  Formal and mathematical.
FDT Foil no 1 On Methodology from Domain to System Descriptions by Rolv Bræk NTNU Workshop on Philosophy and Applicablitiy of Formal Languages Geneve 15.
The basics of the programming process The development of programming languages to improve software development Programming languages that the average user.
J ICOS’s Abstract Distributed Service Component Peter Cappello Computer Science Department UC Santa Barbara.
CS525: Big Data Analytics MapReduce Computing Paradigm & Apache Hadoop Open Source Fall 2013 Elke A. Rundensteiner 1.
Blazes: coordination analysis for distributed program Peter Alvaro, Neil Conway, Joseph M. Hellerstein David Maier UC Berkeley Portland State.
Hadoop/MapReduce Computing Paradigm 1 CS525: Special Topics in DBs Large-Scale Data Management Presented By Kelly Technologies
Formal Verification. Background Information Formal verification methods based on theorem proving techniques and model­checking –To prove the absence of.
Motivation FACE architecture encourages modularity of components on data boundaries Transport Services Segment interface is centered on sending and receiving.
CS223: Software Engineering
BIG DATA/ Hadoop Interview Questions.
Application architectures. Objectives l To explain the organisation of two fundamental models of business systems - batch processing and transaction processing.
Sub-fields of computer science. Sub-fields of computer science.
Organizations Are Embracing New Opportunities
Martin Casado, Nate Foster, and Arjun Guha CACM, October 2014
Jingyong Liu*, Lichen Zhang,
Operating Systems Bina Ramamurthy CSE421 11/27/2018 B.Ramamurthy.
Principles of Programming Languages
강의 내용 및 방법 접근방법 리포트 시험 Lambda Calculus, Proof of Correctness
Distributed Systems (15-440)
Presentation transcript:

Cloud Programming: From Doom and Gloom to BOOM and Bloom Peter Alvaro, Neil Conway Faculty Recs: Joseph M. Hellerstein, Rastislav Bodik Collaborators: Tyson Condie, Bill Marczak, Rusty Sears UC Berkeley

Writing reliable, scalable distributed software remains extremely difficult

Three Hardware Trends 1.Cloud Computing 2.Powerful, heterogeneous mobile clients 3.Many-Core

Implications 1.Nearly every non-trivial program will be physically distributed 2.Increasingly heterogeneous clients, unpredictable cloud environments 3.Distributed programming will no longer be confined to highly-trained experts

The Anatomy of a Distributed Program In a typical distributed program, we see: – Communication, messaging, serialization – Event handling – Concurrency, coordination – Explicit fault tolerance, ad-hoc error handling What are we looking for? – Correctness (safety, liveness, …) – Conformance to specification – High-level performance properties; behavior under network edge-cases

Data-Centric Programming Goal: Fundamentally raise the level of abstraction for distributed programming MapReduce: data-centric batch programming – Programmers apply transformations to data sets Can we apply a data-centric approach to distributed programming in general?

Bloom and BOOM 1.Bloom: A high-level, data-centric language designed for distributed computing 2.BOOM: Berkeley Orders of Magnitude – OOM bigger systems in OOM less code – Use Bloom to build real distributed systems

Agenda: Foundation Begin with a precise formal semantics – Datalog w/ negation, state update, and non- determinism Include primitives for distributed computation Enable formal methods for distributed programming – Model checking, theorem proving, …

Agenda: Engineering 1.Efficient, low-latency dataflow engine (C4) 2.Network-oriented continuous program optimization – Automatically co-locate code and data – Adapt to current network and client conditions – Optimize for both power and performance – Leverage formal semantics: how does distribution change program behavior?

Agenda: Language Design How to expose these concepts to developers? – What are the right developer abstractions for common distributed programs? Bloom language design goals: 1.Familiar syntax (list comprehensions, callbacks) 2.Integration with imperative languages 3.Modularity, encapsulation, and composition

Agenda: Validation How do we know that we’re solving real problems? – Build real systems Initial work: BOOM Analytics – Hadoop + HDFS in distributed logic Goal: Use Bloom to build a complete cloud computing stack – Google in 10KLOC?

Thank you!