Cloud Programming James Larus Microsoft Research. July 13, 2010

Similar documents
Multicore Computing and Scientific Discovery

Look Up! Your Future is in the Cloud

Orleans. Cloud Computing for Everyone. Hamid R. Bazoobandi. March 16, Vrije University of Amsterdam

Orleans. Actors for High-Scale Services. Sergey Bykov extreme Computing Group, Microsoft Research

Using the Singularity Research Development Kit

02 - Distributed Systems

02 - Distributed Systems

6/20/2018 CS5386 SOFTWARE DESIGN & ARCHITECTURE LECTURE 5: ARCHITECTURAL VIEWS C&C STYLES. Outline for Today. Architecture views C&C Views

Executive Summary. It is important for a Java Programmer to understand the power and limitations of concurrent programming in Java using threads.

Differentiating Your Datacentre in the Networked Future John Duffin

HPX. High Performance ParalleX CCT Tech Talk Series. Hartmut Kaiser

Curriculum 2013 Knowledge Units Pertaining to PDC

Chapter 4: Threads. Chapter 4: Threads. Overview Multicore Programming Multithreading Models Thread Libraries Implicit Threading Threading Issues

Ch 1: The Architecture Business Cycle

CSE 333 Lecture 1 - Systems programming

CLUSTERING HIVEMQ. Building highly available, horizontally scalable MQTT Broker Clusters

Hi! NET Developer Group Braunschweig!

Lesson 19 Software engineering aspects

Inside Broker How Broker Leverages the C++ Actor Framework (CAF)

OPERATING SYSTEM. Chapter 4: Threads

Ten things hyperconvergence can do for you

Software Defined Storage for the Evolving Data Center

Chapter 4: Multithreaded Programming

Parallel and Distributed Computing (PD)

Cloud-Native Applications. Copyright 2017 Pivotal Software, Inc. All rights Reserved. Version 1.0

Supercomputing and Mass Market Desktops

CloudI Integration Framework. Chicago Erlang User Group May 27, 2015

Chapter 4: Threads. Operating System Concepts 9 th Edition

ATA DRIVEN GLOBAL VISION CLOUD PLATFORM STRATEG N POWERFUL RELEVANT PERFORMANCE SOLUTION CLO IRTUAL BIG DATA SOLUTION ROI FLEXIBLE DATA DRIVEN V

Scaling Erlang to 10,000 cores.!!! Simon Thompson, University of Kent

Concurrency. Lecture 14: Concurrency & exceptions. Why concurrent subprograms? Processes and threads. Design Issues for Concurrency.

FRANCESCO CESARINI. presents ERLANG/OTP. Francesco Cesarini Erlang

VMware vsphere 4.0 The best platform for building cloud infrastructures

Operating Systems: Internals and Design Principles. Chapter 2 Operating System Overview Seventh Edition By William Stallings

FIVE REASONS YOU SHOULD RUN CONTAINERS ON BARE METAL, NOT VMS

STORAGE EFFICIENCY: MISSION ACCOMPLISHED WITH EMC ISILON

Chapter 4: Threads. Chapter 4: Threads

CSE544 Database Architecture

Spot: A Programming Language for Verified Flight Software

Chapter 4: Threads. Operating System Concepts 9 th Edition

Lesson 14: Cloud Computing

18-447: Computer Architecture Lecture 30B: Multiprocessors. Prof. Onur Mutlu Carnegie Mellon University Spring 2013, 4/22/2013

The MPI Message-passing Standard Practical use and implementation (I) SPD Course 2/03/2010 Massimo Coppola

Designing and debugging real-time distributed systems

Computer Science Curricula 2013

@unterstein #bedcon. Operating microservices with Apache Mesos and DC/OS

Chapter 2 Distributed Information Systems Architecture

Broadcom Adapters for Dell PowerEdge 12G Servers

Object Model. Object Orientated Analysis and Design. Benjamin Kenwright

Computer Architecture: Parallel Processing Basics. Prof. Onur Mutlu Carnegie Mellon University

The next step in Software-Defined Storage with Virtual SAN

Software Architectures

<Insert Picture Here> Enterprise Data Management using Grid Technology

Chapter Outline. Chapter 2 Distributed Information Systems Architecture. Distributed transactions (quick refresh) Layers of an information system

Advanced Systems Lab (Intro and Administration) G. Alonso Systems Group

Introduction to reactive programming. Jonas Chapuis, Ph.D.

Accelerate your Azure Hybrid Cloud Business with HPE. Ken Won, HPE Director, Cloud Product Marketing

Chapter 4: Threads. Operating System Concepts. Silberschatz, Galvin and Gagne

Using the SDACK Architecture to Build a Big Data Product. Yu-hsin Yeh (Evans Ye) Apache Big Data NA 2016 Vancouver

TECHNICAL WHITE PAPER - MAY 2017 MULTI DATA CENTER POOLING WITH NSX WHITE PAPER

Cover Page. The handle holds various files of this Leiden University dissertation

ParalleX. A Cure for Scaling Impaired Parallel Applications. Hartmut Kaiser

Oracle Solaris 11: No-Compromise Virtualization

Cisco Extensible Network Controller

Semantic Web in a Constrained Environment

End-to-End Cloudification of Mobile Telecoms. The MCN Consortium Presenter: Andy Edmonds ZHAW

General Overview of Mozart/Oz

EBOOK DATABASE CONSIDERATIONS FOR DOCKER

Designing for Scalability. Patrick Linskey EJB Team Lead BEA Systems

Introduction to the Active Everywhere Database

CSE 333 Lecture 1 - Systems programming

5/24/ MVP SQL Server: Architecture since 2010 MCT since 2001 Consultant and trainer since 1992

Transactum Business Process Manager with High-Performance Elastic Scaling. November 2011 Ivan Klianev

Singularity Technical Report 1: Singularity Design Motivation

Data Modeling and Databases Ch 14: Data Replication. Gustavo Alonso, Ce Zhang Systems Group Department of Computer Science ETH Zürich

What's New in ActiveVOS 9.0

A unified multicore programming model

CockroachDB on DC/OS. Ben Darnell, CTO, Cockroach Labs

Course Description. Audience. Prerequisites. At Course Completion. : Course 40074A : Microsoft SQL Server 2014 for Oracle DBAs

Revisiting the Past 25 Years: Lessons for the Future. Guri Sohi University of Wisconsin-Madison

Be a VDI hero with Nutanix

2015 Erlang Solutions Ltd

Merging Enterprise Applications with Docker* Container Technology

ERLANG EVOLVES FOR MULTI-CORE AND CLOUD ENVIRONMENTS

BUILDING the VIRtUAL enterprise

Conventional Computer Architecture. Abstraction

Cloud Computing & Visualization

Improve Existing Disaster Recovery Solutions with VMware NSX

Actors in the Small. Making Actors more Useful. Bill La

Europeana Core Service Platform

Designing Component-Based Architectures with Rational Rose RealTime

Applying UML Modeling and MDA to Real-Time Software Development

Modeling and SW Synthesis for

Managing Data at Scale: Microservices and Events. Randy linkedin.com/in/randyshoup

An Information Model for High-Integrity Real Time Systems

Computer Architecture Lecture 27: Multiprocessors. Prof. Onur Mutlu Carnegie Mellon University Spring 2015, 4/6/2015

Reflective Java and A Reflective Component-Based Transaction Architecture

The Software Driven Datacenter

Container-Native Storage

Universal Parallel Computing Research Center at Illinois

Transcription:

Cloud Programming James Larus Microsoft Research July 13, 2010

New Programming Model, New Problems (and some old, unsolved ones) Concurrency Parallelism Message passing Distribution High availability Performance Application partitioning Defect detection High-level abstractions 2

Concurrency Inherently concurrent programming Asynchronous, message-driven model Multiple requests streams Threads or events?? Threads offer familiar sequential programming model But, state can change when thread is preempted (synchronization) Cost of thread and context switch limits concurrency Handlers fracture program control flow Logic split across event handlers Explicit manipulation of local state (no stack frames) Higher-level (state machine, Actor, ) models? Lack of consensus inhibits research, development, reuse, interoperability Parallel programming, redux 3

Parallelism Computers are parallel Increased performance + power efficiency Computers will be heterogeneous Multiple, non-isomorphic functional units Data centers are vast message-passing clusters Availability and throughput Parallel programming is long-standing sore point for computer science State of the art: threads and synchronization (assembly language) No consensus on shared memory semantics New research on higher-level models is not panaceas Transactional memory Deterministic parallelism Radical proposal: abolish shared memory Message passing is inherent in distributed systems, so why 2 models? Shared memory is difficult and error prone 4

Message Passing Fundamental in distributed systems and better programming model Performance / correctness isolation Well-defined points of interaction Scalable More difficult to use Little language support Erlang integrates message with pattern matching Sing# channel contracts Sing# postbox semantics Message passing libraries Fundamental mismatch: asynchronous strange in a synchronous world Open problems Control structures for asynchronous messages Communications contracts Integration of messages in type system and memory model 5

Distribution Distributed systems are rich source of difficult problems Replication Consistency Quorum Well-studied field with good solutions Outsider s perspective: research has focused on fundamental problems and techniques used in real systems Common abstractions Replication Relaxed consistency Persistence How can these techniques be incorporated into programming model? Libraries Language integration New models 6

Availability Services must be highly available Blackberry/Google/ outage gets national media attention Affect millions of people simultaneously Service becomes part of national infrastructure High availability is challenge Starts with design and engineering Hard to eliminate all single points of failure Murphy s law rules Antithetical to rapid software evolution Programming models provide little support for systematic error handling Disproportionate software defects in error-handling code Afterthought Run in inconsistent state Difficult to test Erlang has systematic philosophy of fail and notify (but stateless) Could lightweight transactions simplify rollback for stateful languages? 7

Performance Performance is system-level concern Goes far beyond the code running on a machine Most performance tools focus on low-level details Current approach is wasteful and uncertain Build, observe, tweak, overprovision, pray Performance should be specified as part of behavior SLAs as well as pre-/post-conditions Need scalability Grow by adding machines, not rewriting software Architecture should be the starting point Model and simulate before building a system What is equivalent of Big-O notation for scalability? Adaptivity Systems need to be introspective and capable of adapting behavior to load e.g., simplify home page when load spikes, defer low-priority tasks, provision more machines, 8

Power New challenge is power consumption Processor performance limited by power Multicore only a temporary solution dark silicon Data center locally and globally power constrained Significant cost (CAPEX + OPEX) Power-efficient software design and construction Equivalent of asymptotic analysis for power? How to measure power consumption? How to compare alternatives? Design patterns

Application Partitioning Static partition of functionality between client and server Clients have different architectures and capabilities Adapt to changing constraints (e.g., battery) Move computation to data, particularly when communications constrained Code mobility Exists in data center (VMs), why not across data center boundary? Currently, client and server are two fundamentally different applications Evolution around interfaces Volta (Microsoft) Single program model, compiled for server and client 10

Defect Detection Considerable progress in past decade on defect detection tools Tools focused on local properties (e.g., buffer overruns, test coverage, races, etc.) Little work on system-wide properties Modular checking Whole program analysis expensive and difficult Not practical for services Assertions and annotations at module boundaries Can check global properties locally e.g., Rajamani & Rehof s Conformance Checking New domain of defects Message passing Code robustness Potential performance bottlenecks 11

High-Level Abstractions Map-reduce and dataflow abstractions simplify large-scale data analysis in data centers Convenient way to express problems Hide complex details (distribution, failure, restart) Allow optimization (speculation) Not appropriate for services Need abstractions for wider range of problems Interactive applications 12

Orleans Goals Simple, widely accessible programming model Encourage use of scalable, resilient software architectures Raise level of abstraction (CLR Windows Orleans Azure) Grains are unit of computation and data storage (Actors) Can migrate between data centers Replication, consistency, persistence handled by runtime system One programming model for client and server Simplify development, debugging, performance tuning, etc. Single-source distributed programs (eg Volta) Enable code mobility 13

Orleans Application (Cloud Component) Orleans Runtime Grain Activation Grain Promise Library Data Center (Azure) Application (Client Component) Orleans Runtime Clients

Orleans Architecture DC# Internet Application Tools Orleans Runtime Geo-Distribution Data Replication and Consistency Performance Monitoring Adaptive Control Runtime (Correctness) Monitoring Distributed Debugging Deployment, Configuration, Maintenance Azure 15