Compiling for Concise Code and Efficient I/O

Size: px
Start display at page:

Download "Compiling for Concise Code and Efficient I/O"

Transcription

1 Compiling for Concise Code and Efficient I/O Sebastian Ertel, Andrés Goens, Justus Adam and Jeronimo Castrillon Chair for Compiler Construction TU Dresden 27th International Conference on Compiler Construction Vienna,

2 Microservice-based Architectures Backend (server) system requirements: scalable, flexible, fault-tolerant 2

3 Microservice-based Architectures Backend (server) system requirements: scalable, flexible, fault-tolerant [ Monolithic server 3

4 Microservice-based Architectures Backend (server) system requirements: scalable, flexible, fault-tolerant [ Monolithic server Microservice: independent function Microservices compose to larger services 4

5 Microservice-based Architectures Backend (server) system requirements: scalable, flexible, fault-tolerant [ Monolithic server [Source: I Love APIs 2015 by Chris Munns, licensed under CC BY 4.0, available at: h p://bit.ly/2zbohtk] Microservice: independent function Microservices compose to larger services 5

6 Microservice-based Architectures Backend (server) system requirements: scalable, flexible, fault-tolerant Cost: Lots of I/O! [ Monolithic server [Source: I Love APIs 2015 by Chris Munns, licensed under CC BY 4.0, available at: h p://bit.ly/2zbohtk] Microservice: independent function Microservices compose to larger services 6

7 Fighting I/O Efficient I/O Concise Code 7

8 Fighting I/O Efficient I/O Batching (& deduplication): 1 I/O call vs. n I/O calls Concise Code 2500 latency [ms] batched sequential # blog posts Concurrency: Computation IO Computation (Caching) 8

9 Fighting I/O 2500 Efficient I/O Batching (& deduplication): 1 I/O call vs. n I/O calls group I/O calls Concise Code Breaks modularity! latency [ms] batched sequential # blog posts Concurrency: Computation IO Computation (Caching) 9

10 Fighting I/O 2500 Efficient I/O Batching (& deduplication): 1 I/O call vs. n I/O calls group I/O calls Concise Code Breaks modularity! latency [ms] # blog posts batched sequential Concurrency: Computation IO Computation (Caching) split up code (e.g. into threads) Introduces optimization aspect (concurrency) into the algorithm! 10

11 Fighting I/O 2500 Efficient I/O Batching (& deduplication): 1 I/O call vs. n I/O calls group I/O calls Concise Code Breaks modularity! latency [ms] # blog posts batched sequential Concurrency: Computation IO Computation (Caching) split up code (e.g. into threads) Batching and concurrency do not easily compose! Introduces optimization aspect (concurrency) into the algorithm! 11

12 Fighting I/O 2500 Efficient I/O Batching (& deduplication): 1 I/O call vs. n I/O calls group I/O calls Concise Code Breaks modularity! latency [ms] batched Release the developer from this burden Compiler-based Approach! sequential # blog posts Concurrency: Computation IO Computation (Caching) split up code (e.g. into threads) Batching and concurrency do not easily compose! Introduces optimization aspect (concurrency) into the algorithm! 12

13 Ÿauhau - A compiler framework for microservices DSL (for microservices) unoptimized I/O reduction Expression IR (ƛ-calcus-based) lower I/O concurrency Dataflow IR (concurrent) I/O optimized Dataflow Representation 13

14 Ÿauhau - A compiler framework for microservices DSL (for microservices) unoptimized I/O reduction Expression IR (ƛ-calcus-based) lower I/O concurrency Dataflow IR (concurrent) I/O optimized Dataflow Representation Provably semanticpreserving transformations Concurrency (almost) for free 14

15 A minimalistic DSL for microservices DSL (for microservices) unoptimized I/O reduction Expression IR (ƛ-calcus-based) lower I/O concurrency Dataflow IR (concurrent) I/O optimized Dataflow Representation t ::= v ƛv.t t t let v=t in t if (t t t) ff f (x 1 x n ) io(x) map(ƛv.t [v 1 v n ]) 15

16 Semantic-preserving Transformations DSL (for microservices) unoptimized I/O reduction Expression IR (ƛ-calcus-based) lower I/O concurrency Dataflow IR (concurrent) I/O optimized Dataflow Representation t ::= v ƛv.t t t let v=t in t if (t t t) ff f (x 1 x n ) io(x) Disclaimer: Presentation diverges from paper for visualization purposes. Data flow graphs before and after the transformations instead of map(ƛv.t [v 1 v n ]) lambda expressions. 16

17 Semantic-preserving Transformations DSL (for microservices) unoptimized I/O reduction Expression IR (ƛ-calcus-based) lower I/O concurrency Dataflow IR (concurrent) I/O optimized Dataflow Representation t ::= v ƛv.t t t let v=t in t if (t t t) ff f (x 1 x n ) io(x) ff Grouping independent I/O calls: req io io io ff req io!ff req map(ƛv.t [v 1 v n ]) 17

18 Semantic-preserving Transformations DSL (for microservices) unoptimized I/O reduction Expression IR (ƛ-calcus-based) lower I/O concurrency Dataflow IR (concurrent) I/O optimized Dataflow Representation t ::= v ƛv.t t t let v=t in t if (t t t) ff f (x 1 x n ) io(x) ff Grouping independent I/O calls: req io io io ff req io!ff req map(ƛv.t [v 1 v n ]) 18

19 Semantic-preserving Transformations DSL (for microservices) unoptimized I/O reduction Expression IR (ƛ-calcus-based) lower I/O concurrency Dataflow IR (concurrent) I/O optimized Dataflow Representation t ::= v ƛv.t t t let v=t in t if (t t t) ff f (x 1 x n ) io(x) Grouping independent I/O calls: Lifting I/O calls: io io ff req io [v 1 v n ] map t io t pam [req t ff 1 req n ] [rsp 1 rsp n ] map req pam map io pam map t io!ff req pam map(ƛv.t [v 1 v n ]) 19

20 Semantic-preserving Transformations DSL (for microservices) unoptimized I/O reduction Expression IR (ƛ-calcus-based) lower I/O concurrency Dataflow IR (concurrent) I/O optimized Dataflow Representation t ::= v ƛv.t t t let v=t in t if (t t t) ff f (x 1 x n ) io(x) Grouping independent I/O calls: Lifting I/O calls: io io ff req io [v 1 v n ] map t io t pam [req t ff 1 req n ] [rsp 1 rsp n ] map req pam map io pam map t io!ff req pam map(ƛv.t [v 1 v n ]) 20

21 Semantic-preserving Transformations DSL (for microservices) unoptimized I/O reduction Expression IR (ƛ-calcus-based) lower I/O concurrency Dataflow IR (concurrent) I/O optimized Dataflow Representation t ::= v ƛv.t t t let v=t in t if (t t t) ff f (x 1 x n ) io(x) Grouping independent I/O calls: Lifting I/O calls: io io ff req io [v 1 v n ] map t io t pam [req 1 req n ] [rsp 1 rsp n ] map t pam ff req io!ff req map t io!ff req pam map(ƛv.t [v 1 v n ]) 21

22 Semantic-preserving Transformations DSL (for microservices) unoptimized I/O reduction Expression IR (ƛ-calcus-based) lower I/O concurrency Dataflow IR (concurrent) I/O optimized Dataflow Representation t ::= v ƛv.t t t let v=t in t if (t t t) ff f (x 1 x n ) io(x) map(ƛv.t [v 1 v n ]) Grouping independent I/O calls: Lifting I/O calls: io io ff req io io [v 1 v n ] map t io t pam [req 1 req n ] [rsp 1 rsp n ] map t pam ff req io!ff req map t condition t io t t t if fi if fi io if t io t t t!ff req pam fi 22

23 Semantic-preserving Transformations DSL (for microservices) unoptimized I/O reduction Expression IR (ƛ-calcus-based) lower I/O concurrency Dataflow IR (concurrent) I/O optimized Dataflow Representation t ::= v ƛv.t t t let v=t in t if (t t t) ff f (x 1 x n ) io(x) map(ƛv.t [v 1 v n ]) Grouping independent I/O calls: Lifting I/O calls: io io ff req io io [v 1 v n ] map t io t pam [req 1 req n ] [rsp 1 rsp n ] map t pam ff req io!ff req map t condition t io t t t if fi if fi io if t io t t t!ff req pam fi 23

24 Bringing back Concurrency DSL (for microservices) unoptimized I/O reduction Expression IR (ƛ-calcus-based) lower I/O concurrency Dataflow IR (concurrent) I/O optimized Dataflow Representation Computation IO IO IO IO Computation 24

25 Bringing back Concurrency DSL (for microservices) unoptimized I/O reduction Expression IR (ƛ-calcus-based) lower I/O concurrency Dataflow IR (concurrent) I/O optimized Dataflow Representation Computation IO [ req src 1 req src m ] io [ src 1 rsp src m rsp]!ff req IO IO ds io src 1 dm [ src 1 rsp src m rsp]!ff req io src m IO Computation ds io src 1 io src m src 1 rsp src m rsp!ff req 25

26 Bringing back Concurrency DSL (for microservices) unoptimized I/O reduction Expression IR (ƛ-calcus-based) lower I/O concurrency Dataflow IR (concurrent) I/O optimized Dataflow Representation Computation IO [ req src 1 req src m ] io [ src 1 rsp src m rsp]!ff req IO IO ds io src 1 dm [ src 1 rsp src m rsp]!ff req io src m IO Computation ds io src 1 io src m src 1 rsp src m rsp!ff req 26

27 Bringing back Concurrency DSL (for microservices) unoptimized I/O reduction Expression IR (ƛ-calcus-based) lower I/O concurrency Dataflow IR (concurrent) I/O optimized Dataflow Representation Computation IO [ req src 1 req src m ] io [ src 1 rsp src m rsp]!ff req IO IO ds io src 1 io src m dm [ src 1 rsp src m rsp]!ff req io src 1!ff IO Computation ds req io src m src 1 rsp src m rsp 27

28 Use Case: Blog blog leftpane topics popularposts mainpane data dependency I/O group 3 I/O group 2 map io(req PostInfo ) map io(req PostContent ) io(req PostInfo ) map io(req PostViews ) map io(req PostContent ) map io(req PostInfo ) I/O group 1 io(req PostIds ) io(req PostIds ) io(req PostIds ) Version seq base batch full Time [ms] 275 ± ± ± ± 5.2 4x latency improvement! 28

29 Evaluation against State-of-the-art Haxl Facebook s Haskell-based approach on the abstraction of applicative functors. Muse Similar to Twitter s Stitch, Clojure-based implementation of an AST interpretation. Simon Marlow, Louis Brandy, Jonathan Coens, and Jon Purdy There is no fork: an abstraction for efficient, concurrent, and concise data access. ICFP 14. Alexey Kachayev Reinventing Haxl: Efficient, Concurrent and Concise Data Access. Presentation at EuroClojure

30 Got microservices for evaluation? Level-Graphs: level 0 subfunction level 1 x1 x2 req->io compute level 2 x3 level 3 x6 x4 x5 x7 Andrés Goens, Sebastian Ertel, Justus Adam, and Jeronimo Castrillon Level Graphs: Generating Benchmarks for Concurrency Optimizations in Compilers. MULTIPROG

31 Got microservices for evaluation? Level-Graphs: Programs: level 0 subfunction Haxl level 1 level 2 level 3 x6 x1 x2 x3 x4 x5 x7 req->io compute serialize Muse Seq Ÿauhau Andrés Goens, Sebastian Ertel, Justus Adam, and Jeronimo Castrillon Level Graphs: Generating Benchmarks for Concurrency Optimizations in Compilers. MULTIPROG

32 Ÿauhau outperforms State-of-the-art Level-Graphs: level 0 level 1 level 2 x1 x2 x3 level 3 x6 x4 x5 x7 subfunction req->io compute Programs: serialize Haxl Muse Seq Ÿauhau # I/O calls (avg.) haxl muse seq yauhau # graph levels Andrés Goens, Sebastian Ertel, Justus Adam, and Jeronimo Castrillon Level Graphs: Generating Benchmarks for Concurrency Optimizations in Compilers. MULTIPROG

33 Ÿauhau outperforms State-of-the-art Level-Graphs: Programs: level 0 level 1 level 2 x1 x2 x3 level 3 x6 x4 x5 x7 subfunction req->io compute haxl muse yauhau serialize Haxl Muse Seq Ÿauhau # I/O calls (avg.) haxl muse seq yauhau # graph levels haxl (fork) yauhau yauhau (conc I/O) # I/O calls (avg.) prob. of function/algorithm calls Andrés Goens, Sebastian Ertel, Justus Adam, and Jeronimo Castrillon Level Graphs: Generating Benchmarks for Concurrency Optimizations in Compilers. MULTIPROG Service latency [ms] # graph levels

34 Conclusion I/O optimizations performed at the compiler level Efficient I/O Concise Code Use lambda calculus to provide semantic-preserving transformations! Use dataflow for concurrency/parallel execution! Try it out: 34

35 Ÿauhau Code - Blog Use Case 35

36 Level Graphs Code Haxl (< GHC 8) Muse (with Cats) Ÿauhau 36

Compiling for Concise Code and Ecient I/O

Compiling for Concise Code and Ecient I/O Compiling for Concise Code and Ecient I/O Abstract Sebastian Ertel Chair for Compiler Construction Technische Universität Dresden Dresden, Germany sebastianertel@tu-dresdende Justus Adam Chair for Compiler

More information

Ohua: Implicit Dataflow Programming for Concurrent Systems

Ohua: Implicit Dataflow Programming for Concurrent Systems Ohua: Implicit Dataflow Programming for Concurrent Systems Sebastian Ertel Compiler Construction Group TU Dresden, Germany Christof Fetzer Systems Engineering Group TU Dresden, Germany Pascal Felber Institut

More information

On mapping to multi/manycores

On mapping to multi/manycores On mapping to multi/manycores Jeronimo Castrillon Chair for Compiler Construction (CCC) TU Dresden, Germany MULTIPROG HiPEAC Conference Stockholm, 24.01.2017 Mapping for dataflow programming models MEM

More information

Haskell in the datacentre! Simon Marlow

Haskell in the datacentre! Simon Marlow Haskell in the datacentre! Simon Marlow Facebook (FHPC 17, September 2017) Haskell powers Sigma Clients A platform for detection Used by many different teams Mainly for anti-abuse e.g. spam, malicious

More information

Stop coding Pascal. Saturday, April 6, 13

Stop coding Pascal. Saturday, April 6, 13 Stop coding Pascal...emotional sketch about past, present and future of programming languages, Python, compilers, developers, Life, Universe and Everything Alexey Kachayev CTO at KitApps Inc. Open source

More information

September 15th, Finagle + Java. A love story (

September 15th, Finagle + Java. A love story ( September 15th, 2016 Finagle + Java A love story ( ) @mnnakamura hi, I m Moses Nakamura Twitter lives on the JVM When Twitter realized we couldn t stay on a Rails monolith and continue to scale at the

More information

Mohamed M. Saad & Binoy Ravindran

Mohamed M. Saad & Binoy Ravindran Mohamed M. Saad & Binoy Ravindran VT-MENA Program Electrical & Computer Engineering Department Virginia Polytechnic Institute and State University TRANSACT 11 San Jose, CA An operation (or set of operations)

More information

Microservices without the Servers: AWS Lambda in Action

Microservices without the Servers: AWS Lambda in Action Microservices without the Servers: AWS Lambda in Action Dr. Tim Wagner, General Manager AWS Lambda August 19, 2015 Seattle, WA 2015, Amazon Web Services, Inc. or its affiliates. All rights reserved Two

More information

Zombie Apocalypse Workshop

Zombie Apocalypse Workshop Zombie Apocalypse Workshop Building Serverless Microservices Danilo Poccia @danilop Paolo Latella @LatellaPaolo September 22 nd, 2016 2015, Amazon Web Services, Inc. or its Affiliates. All rights reserved.

More information

Spark 2. Alexey Zinovyev, Java/BigData Trainer in EPAM

Spark 2. Alexey Zinovyev, Java/BigData Trainer in EPAM Spark 2 Alexey Zinovyev, Java/BigData Trainer in EPAM With IT since 2007 With Java since 2009 With Hadoop since 2012 With EPAM since 2015 About Secret Word from EPAM itsubbotnik Big Data Training 3 Contacts

More information

Text. Parallelism Gabriele Keller University of New South Wales

Text. Parallelism Gabriele Keller University of New South Wales Text Parallelism Gabriele Keller University of New South Wales Programming Languages Mentoring Workshop 2015 undergrad Karslruhe & Berlin, Germany PhD Berlin & Tsukuba, Japan University of Technology Sydney

More information

WHITEPAPER. Pipelining Machine Learning Models Together

WHITEPAPER. Pipelining Machine Learning Models Together WHITEPAPER Pipelining Machine Learning Models Together Table of Contents Introduction 2 Performance and Organizational Benefits of Pipelining 4 Practical Use Case: Twitter Sentiment Analysis 5 Practical

More information

Haskell for (E)DSLs. Andres Löh. Functional Programming exchange, 16 March Well-Typed LLP

Haskell for (E)DSLs. Andres Löh. Functional Programming exchange, 16 March Well-Typed LLP Haskell for (E)DSLs Andres Löh Well-Typed LLP Functional Programming exchange, 16 March 2012 My completely biased world view Languages are everywhere! My completely biased world view Languages are everywhere!

More information

Easy Multicore Programming using MAPS

Easy Multicore Programming using MAPS Easy Multicore Programming using MAPS Jeronimo Castrillon, Maximilian Odendahl Multicore Challenge Conference 2012 September 24 th, 2012 Institute for Communication Technologies and Embedded Systems Outline

More information

Extensible Modeling Languages

Extensible Modeling Languages Extensible ing Languages Utilizing Libraries for Creation, Use, and Domain-Specific Extensions 5th MODPROD Workshop on -Based Product Development February 8, 2011 Department of Computer and Information

More information

Concurrency: what, why, how

Concurrency: what, why, how Concurrency: what, why, how May 28, 2009 1 / 33 Lecture about everything and nothing Explain basic idea (pseudo) vs. Give reasons for using Present briefly different classifications approaches models and

More information

Serverless Architecture Hochskalierbare Anwendungen ohne Server. Sascha Möllering, Solutions Architect

Serverless Architecture Hochskalierbare Anwendungen ohne Server. Sascha Möllering, Solutions Architect Serverless Architecture Hochskalierbare Anwendungen ohne Server Sascha Möllering, Solutions Architect Agenda Serverless Architecture AWS Lambda Amazon API Gateway Amazon DynamoDB Amazon S3 Serverless Framework

More information

Conservative Concurrency in Haskell

Conservative Concurrency in Haskell Conservative Concurrency in Haskell David Sabel and Manfred Schmidt-Schauß Goethe-University, Frankfurt am Main, Germany LICS 12, Dubrovnik, Croatia Motivation a View on Haskell Purely functional core

More information

Engineering Robust Server Software

Engineering Robust Server Software Engineering Robust Server Software Scalability Other Scalability Issues Database Load Testing 2 Databases Most server applications use databases Very complex pieces of software Designed for scalability

More information

Parallel & Concurrent Haskell 1: Basic Pure Parallelism. Simon Marlow (Microsoft Research, Cambridge, UK)

Parallel & Concurrent Haskell 1: Basic Pure Parallelism. Simon Marlow (Microsoft Research, Cambridge, UK) Parallel & Concurrent Haskell 1: Basic Pure Parallelism Simon Marlow (Microsoft Research, Cambridge, UK) Background The parallelism landscape is getting crowded Every language has their own solution(s)

More information

Denotational Semantics. Domain Theory

Denotational Semantics. Domain Theory Denotational Semantics and Domain Theory 1 / 51 Outline Denotational Semantics Basic Domain Theory Introduction and history Primitive and lifted domains Sum and product domains Function domains Meaning

More information

Building Scalable Stateful Services. Craft Conf 2016

Building Scalable Stateful Services. Craft Conf 2016 Building Scalable Stateful s Craft Conf 2016 Caitie McCaffrey Distributed Systems Engineer @caitie caitiem.com Stateless s Stateless s Stateless s Stateless s Stateless s Stateless s Stateless s Stateless

More information

Using FPGAs as Microservices

Using FPGAs as Microservices Using FPGAs as Microservices David Ojika, Ann Gordon-Ross, Herman Lam, Bhavesh Patel, Gaurav Kaul, Jayson Strayer (University of Florida, DELL EMC, Intel Corporation) The 9 th Workshop on Big Data Benchmarks,

More information

Multigrain Parallelism: Bridging Coarse- Grain Parallel Languages and Fine-Grain Event-Driven Multithreading

Multigrain Parallelism: Bridging Coarse- Grain Parallel Languages and Fine-Grain Event-Driven Multithreading Department of Electrical and Computer Engineering Computer Architecture and Parallel Systems Laboratory - CAPSL Multigrain Parallelism: Bridging Coarse- Grain Parallel Languages and Fine-Grain Event-Driven

More information

Programming Network Policies by Examples: Platform, Abstraction and User Studies

Programming Network Policies by Examples: Platform, Abstraction and User Studies Programming Network Policies by Examples: Platform, Abstraction and User Studies Boon Thau Loo University of Pennsylvania NetPL workshop @ SIGCOMM 2017 Joint work with Yifei Yuan, Dong Lin, Siri Anil,

More information

Programming Heterogeneous Embedded Systems for IoT

Programming Heterogeneous Embedded Systems for IoT Programming Heterogeneous Embedded Systems for IoT Jeronimo Castrillon Chair for Compiler Construction TU Dresden jeronimo.castrillon@tu-dresden.de Get-together toward a sustainable collaboration in IoT

More information

Concurrency: what, why, how

Concurrency: what, why, how Concurrency: what, why, how Oleg Batrashev February 10, 2014 what this course is about? additional experience with try out some language concepts and techniques Grading java.util.concurrent.future? agents,

More information

Multicore programming in Haskell. Simon Marlow Microsoft Research

Multicore programming in Haskell. Simon Marlow Microsoft Research Multicore programming in Haskell Simon Marlow Microsoft Research A concurrent web server server :: Socket -> IO () server sock = forever (do acc

More information

Program generation for schema-based, typed data access

Program generation for schema-based, typed data access Program generation for schema-based, typed data access Ralf Lämmel Software Engineer Facebook, London Program generation A use case at Facebook Purpose of generation: typed data access ("O/R mapping" et

More information

Dataflow: The Road Less Complex

Dataflow: The Road Less Complex Dataflow: The Road Less Complex Steven Swanson Ken Michelson Andrew Schwerin Mark Oskin University of Washington Sponsored by NSF and Intel Things to keep you up at night (~2016) Opportunities 8 billion

More information

Engineering Robust Server Software

Engineering Robust Server Software Engineering Robust Server Software Scalability Other Scalability Issues Database Load Testing 2 Databases Most server applications use databases Very complex pieces of software Designed for scalability

More information

Great Reality #2: You ve Got to Know Assembly Does not generate random values Arithmetic operations have important mathematical properties

Great Reality #2: You ve Got to Know Assembly Does not generate random values Arithmetic operations have important mathematical properties Overview Course Overview Course theme Five realities Computer Systems 1 2 Course Theme: Abstraction Is Good But Don t Forget Reality Most CS courses emphasize abstraction Abstract data types Asymptotic

More information

Brief introduction of SocketPro continuous SQL-stream sending and processing system (Part 1: SQLite)

Brief introduction of SocketPro continuous SQL-stream sending and processing system (Part 1: SQLite) Brief introduction of SocketPro continuous SQL-stream sending and processing system (Part 1: SQLite) Introduction Most of client server database systems only support synchronous communication between client

More information

Systems Architecture. Monolithic Systems

Systems Architecture. Monolithic Systems Systems Architecture Monolithic Systems 13 - Monolithic CSC407 1 no architecture Monolithic Systems reports static data imported data dynamic data 13 - Monolithic CSC407 2 1 Examples Most programs you

More information

Red Hat JBoss Enterprise Application Platform 7.1

Red Hat JBoss Enterprise Application Platform 7.1 Red Hat JBoss Enterprise Application Platform 7.1 Introduction to JBoss EAP For Use with Red Hat JBoss Enterprise Application Platform 7.1 Last Updated: 2018-02-08 Red Hat JBoss Enterprise Application

More information

Evaluating BFT Protocols for Spire

Evaluating BFT Protocols for Spire Evaluating BFT Protocols for Spire Henry Schuh & Sam Beckley 600.667 Advanced Distributed Systems & Networks SCADA & Spire Overview High-Performance, Scalable Spire Trusted Platform Module Known Network

More information

Hi! NET Developer Group Braunschweig!

Hi! NET Developer Group Braunschweig! Hi! NET Developer Group Braunschweig! Über Tobias Dipl. Informatiker (FH) Passionated Software Developer Clean Code Developer.NET Junkie.NET User Group Lead Microsoft PFE Software Development Twitter @Blubern

More information

First-class Implementations

First-class Implementations First-class Implementations Turtling down Runtime Meta-levels and PCLSRing up François-René Rideau, TUNES Project BostonHaskell, 2016-05-18 http://fare.tunes.org/files/cs/fci-bh2016.pdf 1 This Talk Salvaged

More information

What is concurrency? Concurrency. What is parallelism? concurrency vs parallelism. Concurrency: (the illusion of) happening at the same time.

What is concurrency? Concurrency. What is parallelism? concurrency vs parallelism. Concurrency: (the illusion of) happening at the same time. What is concurrency? Concurrency Johan Montelius KTH 2017 Concurrency: (the illusion of) happening at the same time. A property of the programing model. Why would we want to do things concurrently? What

More information

FLICK: Developing and Running Application-Specific Network Services

FLICK: Developing and Running Application-Specific Network Services FLICK: Developing and Running Application-Specific Network Services Presenter: Richard G. Clegg, Imperial College Imperial College: Abdul Alim, Luo Mai, Lukas Rupprecht, Eric Seckler, Paolo Costa, Peter

More information

Concurrency. Johan Montelius KTH

Concurrency. Johan Montelius KTH Concurrency Johan Montelius KTH 2017 1 / 32 What is concurrency? 2 / 32 What is concurrency? Concurrency: (the illusion of) happening at the same time. 2 / 32 What is concurrency? Concurrency: (the illusion

More information

Tackling Latency via Replication in Distributed Systems

Tackling Latency via Replication in Distributed Systems Tackling Latency via Replication in Distributed Systems Zhan Qiu, Imperial College London Juan F. Pe rez, University of Melbourne Peter G. Harrison, Imperial College London ACM/SPEC ICPE 2016 15 th March,

More information

Scaling Up Performance Benchmarking

Scaling Up Performance Benchmarking Scaling Up Performance Benchmarking -with SPECjbb2015 Anil Kumar Runtime Performance Architect @Intel, OSG Java Chair Monica Beckwith Runtime Performance Architect @Arm, Java Champion FaaS Serverless Frameworks

More information

Compositional Model Based Software Development

Compositional Model Based Software Development Compositional Model Based Software Development Prof. Dr. Bernhard Rumpe http://www.se-rwth.de/ Seite 2 Our Working Groups and Topics Automotive / Robotics Autonomous driving Functional architecture Variability

More information

Haskell in the Software Industry

Haskell in the Software Industry Haskell in the Software Industry What is Haskell? Haskell in a nutshell Haskell is a pure, non-strict, statically typed, garbage collected, general purpose, functional programming language. Early history

More information

OpenACC Course. Office Hour #2 Q&A

OpenACC Course. Office Hour #2 Q&A OpenACC Course Office Hour #2 Q&A Q1: How many threads does each GPU core have? A: GPU cores execute arithmetic instructions. Each core can execute one single precision floating point instruction per cycle

More information

This document (including, without limitation, any product roadmap or statement of direction data) illustrates the planned testing, release and

This document (including, without limitation, any product roadmap or statement of direction data) illustrates the planned testing, release and Serverless Integration Powered by Flogo and Lambda Leon Stigter Developer Advocate TIBCO 2 Abstract No matter the metric, "serverless" is definitely gaining interest. It s the dream of every developer,

More information

Haskell Functional Programming

Haskell Functional Programming Haskell Functional Programming http://igm.univ-mlv.fr/~vialette/?section=teaching Stéphane Vialette LIGM, Université Paris-Est Marne-la-Vallée November 11, 2017 Everybody s talking about functional programming

More information

Leveraging Lock Contention to Improve Transaction Applications. University of Washington

Leveraging Lock Contention to Improve Transaction Applications. University of Washington Leveraging Lock Contention to Improve Transaction Applications Cong Yan Alvin Cheung University of Washington Background Pessimistic locking-based CC protocols Poor performance under high data contention

More information

Web Services Choreography and Process Algebra

Web Services Choreography and Process Algebra Web Services Choreography and Process Algebra 29th April 2004 Steve Ross-Talbot Chief Scientist, Enigmatec Corporation Ltd Chair W3C Web Services Activity Co-chair W3C Web Services Choreography Agenda

More information

Architectural Styles. Reid Holmes

Architectural Styles. Reid Holmes Material and some slide content from: - Emerson Murphy-Hill - Software Architecture: Foundations, Theory, and Practice - Essential Software Architecture Architectural Styles Reid Holmes Lecture 5 - Tuesday,

More information

Scalable Concurrent Hash Tables via Relativistic Programming

Scalable Concurrent Hash Tables via Relativistic Programming Scalable Concurrent Hash Tables via Relativistic Programming Josh Triplett September 24, 2009 Speed of data < Speed of light Speed of light: 3e8 meters/second Processor speed: 3 GHz, 3e9 cycles/second

More information

CSE 124: Networked Services Lecture-17

CSE 124: Networked Services Lecture-17 Fall 2010 CSE 124: Networked Services Lecture-17 Instructor: B. S. Manoj, Ph.D http://cseweb.ucsd.edu/classes/fa10/cse124 11/30/2010 CSE 124 Networked Services Fall 2010 1 Updates PlanetLab experiments

More information

NFSv4 as the Building Block for Fault Tolerant Applications

NFSv4 as the Building Block for Fault Tolerant Applications NFSv4 as the Building Block for Fault Tolerant Applications Alexandros Batsakis Overview Goal: To provide support for recoverability and application fault tolerance through the NFSv4 file system Motivation:

More information

Agenda. Threads. Single and Multi-threaded Processes. What is Thread. CSCI 444/544 Operating Systems Fall 2008

Agenda. Threads. Single and Multi-threaded Processes. What is Thread. CSCI 444/544 Operating Systems Fall 2008 Agenda Threads CSCI 444/544 Operating Systems Fall 2008 Thread concept Thread vs process Thread implementation - user-level - kernel-level - hybrid Inter-process (inter-thread) communication What is Thread

More information

Real-time data processing with Apache Flink

Real-time data processing with Apache Flink Real-time data processing with Apache Flink Gyula Fóra gyfora@apache.org Flink committer Swedish ICT Stream processing Data stream: Infinite sequence of data arriving in a continuous fashion. Stream processing:

More information

Building a Data-Friendly Platform for a Data- Driven Future

Building a Data-Friendly Platform for a Data- Driven Future Building a Data-Friendly Platform for a Data- Driven Future Benjamin Hindman - @benh 2016 Mesosphere, Inc. All Rights Reserved. INTRO $ whoami BENJAMIN HINDMAN Co-founder and Chief Architect of Mesosphere,

More information

Parallelism and runtimes

Parallelism and runtimes Parallelism and runtimes Advanced Course on Compilers Spring 2015 (III-V): Lecture 7 Vesa Hirvisalo ESG/CSE/Aalto Today Parallel platforms Concurrency Consistency Examples of parallelism Regularity of

More information

Generating Fast Data Planes for Data-Intensive Systems

Generating Fast Data Planes for Data-Intensive Systems Generating Fast Data Planes for Data-Intensive Systems Shoumik Palkar and Matei Zaharia Stanford DAWN Many New Data Systems We are building many specialized high-performance data systems. Graph Engines

More information

An Introduction to Software Architecture. David Garlan & Mary Shaw 94

An Introduction to Software Architecture. David Garlan & Mary Shaw 94 An Introduction to Software Architecture David Garlan & Mary Shaw 94 Motivation Motivation An increase in (system) size and complexity structural issues communication (type, protocol) synchronization data

More information

Multi-threaded Queries. Intra-Query Parallelism in LLVM

Multi-threaded Queries. Intra-Query Parallelism in LLVM Multi-threaded Queries Intra-Query Parallelism in LLVM Multithreaded Queries Intra-Query Parallelism in LLVM Yang Liu Tianqi Wu Hao Li Interpreted vs Compiled (LLVM) Interpreted vs Compiled (LLVM) Interpreted

More information

Fall 2012 Parallel Computer Architecture Lecture 15: Speculation I. Prof. Onur Mutlu Carnegie Mellon University 10/10/2012

Fall 2012 Parallel Computer Architecture Lecture 15: Speculation I. Prof. Onur Mutlu Carnegie Mellon University 10/10/2012 18-742 Fall 2012 Parallel Computer Architecture Lecture 15: Speculation I Prof. Onur Mutlu Carnegie Mellon University 10/10/2012 Reminder: Review Assignments Was Due: Tuesday, October 9, 11:59pm. Sohi

More information

High Performance Managed Languages. Martin Thompson

High Performance Managed Languages. Martin Thompson High Performance Managed Languages Martin Thompson - @mjpt777 Really, what s your preferred platform for building HFT applications? Why would you build low-latency applications on a GC ed platform? Some

More information

The Remote Monad. Dissertation Defense. Justin Dawson.

The Remote Monad. Dissertation Defense. Justin Dawson. The Remote Monad Dissertation Defense Justin Dawson jdawson@ittc.ku.edu Information and Telecommunication Technology Center University of Kansas, USA 1 / 66 Sandwiches! How do you make a sandwich? 2 /

More information

Runtime Support for Scalable Task-parallel Programs

Runtime Support for Scalable Task-parallel Programs Runtime Support for Scalable Task-parallel Programs Pacific Northwest National Lab xsig workshop May 2018 http://hpc.pnl.gov/people/sriram/ Single Program Multiple Data int main () {... } 2 Task Parallelism

More information

A Combined Semi-Pipelined Query Processing Architecture For Distributed Full-Text Retrieval

A Combined Semi-Pipelined Query Processing Architecture For Distributed Full-Text Retrieval A Combined Semi-Pipelined Query Processing Architecture For Distributed Full-Text Retrieval Simon Jonassen and Svein Erik Bratsberg Department of Computer and Information Science Norwegian University of

More information

Introduction to CUDA Algoritmi e Calcolo Parallelo. Daniele Loiacono

Introduction to CUDA Algoritmi e Calcolo Parallelo. Daniele Loiacono Introduction to CUDA Algoritmi e Calcolo Parallelo References q This set of slides is mainly based on: " CUDA Technical Training, Dr. Antonino Tumeo, Pacific Northwest National Laboratory " Slide of Applied

More information

Reactive Web Programming

Reactive Web Programming Reactive Web Programming Colin Vidal colin.vidal@inria.fr INRIA Sophia Antipolis Supervisors : Manuel Serrano Gérard Berry December 2, 2015 1 / 14 JavaScript language A mainstream language to write web

More information

Lecture 6B Hierarchical/Concurrent State Machine Models (HCFSM)

Lecture 6B Hierarchical/Concurrent State Machine Models (HCFSM) ECE 474A/57A Computer-Aided Logic Design Outline Models vs. Languages Lecture 6B Hierarchical/Concurrent State Machine Models (HCFSM) State Machine Model FSM/FSMD HCFSM and Statecharts Language Program-State

More information

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

Managing Data at Scale: Microservices and Events. Randy linkedin.com/in/randyshoup Managing Data at Scale: Microservices and Events Randy Shoup @randyshoup linkedin.com/in/randyshoup Background VP Engineering at Stitch Fix o Combining Art and Science to revolutionize apparel retail Consulting

More information

A Quest for Predictable Latency Adventures in Java Concurrency. Martin Thompson

A Quest for Predictable Latency Adventures in Java Concurrency. Martin Thompson A Quest for Predictable Latency Adventures in Java Concurrency Martin Thompson - @mjpt777 If a system does not respond in a timely manner then it is effectively unavailable 1. It s all about the Blocking

More information

CSE 333 Lecture 1 - Systems programming

CSE 333 Lecture 1 - Systems programming CSE 333 Lecture 1 - Systems programming Steve Gribble Department of Computer Science & Engineering University of Washington Welcome! Today s goals: - introductions - big picture - course syllabus - setting

More information

CMPSC 311- Introduction to Systems Programming Module: Systems Programming

CMPSC 311- Introduction to Systems Programming Module: Systems Programming CMSC 311- Introduction to Systems rogramming Module: Systems rogramming rofessor atrick McDaniel Fall 2013 Software Systems A platform, application, or other structure that: is composed of multiple modules

More information

Combined Object-Lambda Architectures

Combined Object-Lambda Architectures www.jquigley.com jquigley#jquigley.com Chicago Lisp April 2008 Research Goals System Goals Conventional Systems Unconventional Systems Research Goals Question: How to make with Pepsi and Coke? The Goal:

More information

Deterministic Parallel Programming

Deterministic Parallel Programming Deterministic Parallel Programming Concepts and Practices 04/2011 1 How hard is parallel programming What s the result of this program? What is data race? Should data races be allowed? Initially x = 0

More information

vsan 6.6 Performance Improvements First Published On: Last Updated On:

vsan 6.6 Performance Improvements First Published On: Last Updated On: vsan 6.6 Performance Improvements First Published On: 07-24-2017 Last Updated On: 07-28-2017 1 Table of Contents 1. Overview 1.1.Executive Summary 1.2.Introduction 2. vsan Testing Configuration and Conditions

More information

Hadoop. copyright 2011 Trainologic LTD

Hadoop. copyright 2011 Trainologic LTD Hadoop Hadoop is a framework for processing large amounts of data in a distributed manner. It can scale up to thousands of machines. It provides high-availability. Provides map-reduce functionality. Hides

More information

Harp-DAAL for High Performance Big Data Computing

Harp-DAAL for High Performance Big Data Computing Harp-DAAL for High Performance Big Data Computing Large-scale data analytics is revolutionizing many business and scientific domains. Easy-touse scalable parallel techniques are necessary to process big

More information

Distributed Systems CS6421

Distributed Systems CS6421 Distributed Systems CS6421 Intro to Distributed Systems and the Cloud Prof. Tim Wood v I teach: Software Engineering, Operating Systems, Sr. Design I like: distributed systems, networks, building cool

More information

High Performance Web Server in Haskell

High Performance Web Server in Haskell High Performance Web Server in Haskell 2011.7.12 IIJ Innovation Institute Inc. Kazu Yamamoto 1 My goal Modular Network Programming on Highly Concurrent Environment 2 Today s talk Will not talk about Modular

More information

Using Scala for building DSL s

Using Scala for building DSL s Using Scala for building DSL s Abhijit Sharma Innovation Lab, BMC Software 1 What is a DSL? Domain Specific Language Appropriate abstraction level for domain - uses precise concepts and semantics of domain

More information

Intel Thread Building Blocks

Intel Thread Building Blocks Intel Thread Building Blocks SPD course 2015-16 Massimo Coppola 08/04/2015 1 Thread Building Blocks : History A library to simplify writing thread-parallel programs and debugging them Originated circa

More information

CSE 5306 Distributed Systems

CSE 5306 Distributed Systems CSE 5306 Distributed Systems Naming Jia Rao http://ranger.uta.edu/~jrao/ 1 Naming Names play a critical role in all computer systems To access resources, uniquely identify entities, or refer to locations

More information

Breaking Down Barriers: An Intro to GPU Synchronization. Matt Pettineo Lead Engine Programmer Ready At Dawn Studios

Breaking Down Barriers: An Intro to GPU Synchronization. Matt Pettineo Lead Engine Programmer Ready At Dawn Studios Breaking Down Barriers: An Intro to GPU Synchronization Matt Pettineo Lead Engine Programmer Ready At Dawn Studios Who am I? Ready At Dawn for 9 years Lead Engine Programmer for 5 I like GPUs and APIs!

More information

Kernel Level Speculative DSM

Kernel Level Speculative DSM Motivation Main interest is performance, fault-tolerance, and correctness of distributed systems Present our ideas in the context of a DSM system We are developing tools that Improve performance Address

More information

Leveraging Lock Contention to Improve Transaction Applications. University of Washington

Leveraging Lock Contention to Improve Transaction Applications. University of Washington Leveraging Lock Contention to Improve Transaction Applications Cong Yan Alvin Cheung University of Washington 1 Background Database transactions Airline ticket reservation, banking, online shopping...

More information

Static Contract Checking for Haskell

Static Contract Checking for Haskell Static Contract Checking for Haskell Dana N. Xu INRIA France Work done at University of Cambridge Simon Peyton Jones Microsoft Research Cambridge Joint work with Koen Claessen Chalmers University of Technology

More information

Semantic Modularization Techniques in Practice: A TAPL case study

Semantic Modularization Techniques in Practice: A TAPL case study 1 Semantic Modularization Techniques in Practice: A TAPL case study Bruno C. d. S. Oliveira Joint work with Weixin Zhang, Haoyuan Zhang and Huang Li July 17, 2017 Text 2 EVF: An Extensible and Expressive

More information

CMPSC 311- Introduction to Systems Programming Module: Systems Programming

CMPSC 311- Introduction to Systems Programming Module: Systems Programming CMPSC 311- Introduction to Systems Programming Module: Systems Programming Professor Patrick McDaniel Fall 2013 Patrick McDaniel Professor of Computer Science and Engineering Co-head of Security Group

More information

Broker. Matthias Vallentin UC Berkeley International Computer Science Institute (ICSI) BroCon '16

Broker. Matthias Vallentin UC Berkeley International Computer Science Institute (ICSI) BroCon '16 Broker Matthias Vallentin UC Berkeley International Computer Science Institute (ICSI) BroCon '16 Communication in Bro Exploiting Independent State For Network Intrusion Detection Tap Broccoli, Independent

More information

Execution Architecture

Execution Architecture Execution Architecture Software Architecture VO (706.706) Roman Kern Institute for Interactive Systems and Data Science, TU Graz 2018-11-07 Roman Kern (ISDS, TU Graz) Execution Architecture 2018-11-07

More information

Before proceeding with this tutorial, you must have a good understanding of Core Java and any of the Linux flavors.

Before proceeding with this tutorial, you must have a good understanding of Core Java and any of the Linux flavors. About the Tutorial Storm was originally created by Nathan Marz and team at BackType. BackType is a social analytics company. Later, Storm was acquired and open-sourced by Twitter. In a short time, Apache

More information

MICROKERNELS: MACH AND L4

MICROKERNELS: MACH AND L4 1 MICROKERNELS: MACH AND L4 CS6410 Hakim Weatherspoon Introduction to Kernels Different Types of Kernel Designs Monolithic kernel Microkernel Hybrid Kernel Exokernel Virtual Machines? Monolithic Kernels

More information

Dynamic analysis in the Reduceron. Matthew Naylor and Colin Runciman University of York

Dynamic analysis in the Reduceron. Matthew Naylor and Colin Runciman University of York Dynamic analysis in the Reduceron Matthew Naylor and Colin Runciman University of York A question I wonder how popular Haskell needs to become for Intel to optimize their processors for my runtime, rather

More information

Urmas Tamm Tartu 2013

Urmas Tamm Tartu 2013 The implementation and optimization of functional languages Urmas Tamm Tartu 2013 Intro The implementation of functional programming languages, Simon L. Peyton Jones, 1987 Miranda fully lazy strict a predecessor

More information

Building a high-performance, scalable ML & NLP platform with Python. Sheer El Showk CTO, Lore Ai

Building a high-performance, scalable ML & NLP platform with Python. Sheer El Showk CTO, Lore Ai Building a high-performance, scalable ML & NLP platform with Python Sheer El Showk CTO, Lore Ai www.lore.ai Lore is a small startup focused on developing and applying machine-learning techniques to solve

More information

Using Haskell at Bdellium

Using Haskell at Bdellium Using Haskell at Bdellium Parallelism, Lenses, Pipes and Industry Report A note about me (Fredrik Olsen) Studied Engineering Physics at LTH Started working for Bdellium in 2011 We help business grow Developing

More information

Network Function Virtualization in GTS

Network Function Virtualization in GTS Nordic Infrastructure for Research & Education Network Function Virtualization in GTS Richard Cziva University of Glasgow NORDUnet Network Function Virtualization Moving network services from hardware

More information

The API is dead. Long live the protocol.

The API is dead. Long live the protocol. The API is dead. Long live the protocol. We need to add messaging to... Developers don't know who to trust or have a clear methodology. Messaging is complex and developers spend a lot of time

More information

High Performance Computing on GPUs using NVIDIA CUDA

High Performance Computing on GPUs using NVIDIA CUDA High Performance Computing on GPUs using NVIDIA CUDA Slides include some material from GPGPU tutorial at SIGGRAPH2007: http://www.gpgpu.org/s2007 1 Outline Motivation Stream programming Simplified HW and

More information